08:15:28.219 [main] DEBUG io.netty.handler.ssl.BouncyCastlePemReader -- Parsed PEM object of type org.bouncycastle.asn1.pkcs.PrivateKeyInfo and assume key is not encrypted 08:15:28.227 [main] INFO org.opendaylight.gnmi.simulatordevice.impl.SimulatedGnmiDevice -- Combination of server certificate and key not provided, using default ones. 08:15:28.361 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@67d0787c} unlocked 08:15:28.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@67d0787c} readied 08:15:28.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@67d0787c} 08:15:28.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@67d0787c} completed successfully 08:15:28.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:28.402 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2ea613e2} unlocked 08:15:28.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2ea613e2} readied 08:15:28.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2ea613e2} 08:15:28.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2ea613e2} completed successfully 08:15:28.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:28.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1788d66f} unlocked 08:15:28.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1788d66f} readied 08:15:28.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2c8509a7} unlocked 08:15:28.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1788d66f} 08:15:28.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2c8509a7} readied 08:15:28.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2c8509a7} 08:15:28.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1788d66f} completed successfully 08:15:28.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:28.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2c8509a7} completed successfully 08:15:28.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:28.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@27e0346e} unlocked 08:15:28.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@27e0346e} readied 08:15:28.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@27e0346e} 08:15:28.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@27e0346e} completed successfully 08:15:28.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase SOURCE_PRE_LINKAGE 08:15:28.528 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_PRE_LINKAGE started 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase SOURCE_PRE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_PRE_LINKAGE finished 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase SOURCE_LINKAGE 08:15:28.530 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_LINKAGE started 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} found a pre-existing match: SourceIdentifier [openconfig-interfaces@2021-04-06]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-interfaces}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-openflow-types} matched added key SourceIdentifier [openconfig-openflow-types@2020-06-30] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-yang-types} found a pre-existing match: SourceIdentifier [ietf-yang-types@2013-07-15]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=ietf-yang-types}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-interfaces} matched added key SourceIdentifier [ietf-interfaces@2018-02-20] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-logging} found a pre-existing match: SourceIdentifier [openconfig-system-logging@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-system-logging}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-procmon} found a pre-existing match: SourceIdentifier [openconfig-procmon@2019-03-15]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-procmon}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system} matched added key SourceIdentifier [openconfig-system@2020-04-13] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} found a pre-existing match: SourceIdentifier [openconfig-interfaces@2021-04-06]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-interfaces}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=gnmi-test-model} found a pre-existing match: SourceIdentifier [gnmi-test-model]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=gnmi-test-model}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-interfaces} found a pre-existing match: SourceIdentifier [ietf-interfaces@2018-02-20]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=ietf-interfaces}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} matched added key SourceIdentifier [iana-if-type@2023-01-26] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} found a pre-existing match: SourceIdentifier [openconfig-types@2019-04-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-types}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} found a pre-existing match: SourceIdentifier [openconfig-types@2019-04-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-types}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-platform} found a pre-existing match: SourceIdentifier [openconfig-platform@2021-01-18]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-platform}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarms} matched added key SourceIdentifier [openconfig-alarms@2019-07-09] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-types} matched added key SourceIdentifier [openconfig-if-types@2018-11-21] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} found a pre-existing match: SourceIdentifier [openconfig-types@2019-04-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-types}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-platform-types} matched added key SourceIdentifier [openconfig-platform-types@2021-01-18] 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.531 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-vlan-types} found a pre-existing match: SourceIdentifier [openconfig-vlan-types@2020-06-30]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-vlan-types}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} found a pre-existing match: SourceIdentifier [openconfig-interfaces@2021-04-06]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-interfaces}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-aggregate} found a pre-existing match: SourceIdentifier [openconfig-if-aggregate@2020-05-01]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-if-aggregate}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} found a pre-existing match: SourceIdentifier [iana-if-type@2023-01-26]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=iana-if-type}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} found a pre-existing match: SourceIdentifier [openconfig-interfaces@2021-04-06]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-interfaces}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} found a pre-existing match: SourceIdentifier [iana-if-type@2023-01-26]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=iana-if-type}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-ethernet} matched added key SourceIdentifier [openconfig-if-ethernet@2021-06-09] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-ethernet} matched added key SourceIdentifier [openconfig-if-ethernet@2021-06-09] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} found a pre-existing match: SourceIdentifier [openconfig-aaa-types@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-aaa-types}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=submodule} criterion LatestRevisionModule{moduleName=openconfig-aaa-tacacs} found a pre-existing match: SourceIdentifier [openconfig-aaa-tacacs@2020-07-30]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)submodule}, argument=Unqualified{localName=openconfig-aaa-tacacs}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=submodule} criterion LatestRevisionModule{moduleName=openconfig-aaa-radius} found a pre-existing match: SourceIdentifier [openconfig-aaa-radius@2020-07-30]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)submodule}, argument=Unqualified{localName=openconfig-aaa-radius}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa} matched added key SourceIdentifier [openconfig-aaa@2020-07-30] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-terminal} matched added key SourceIdentifier [openconfig-system-terminal@2018-11-21] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-logging} found a pre-existing match: SourceIdentifier [openconfig-system-logging@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-system-logging}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-messages} matched added key SourceIdentifier [openconfig-messages@2018-08-13] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarm-types} matched added key SourceIdentifier [openconfig-alarm-types@2018-11-21] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarm-types} matched added key SourceIdentifier [openconfig-alarm-types@2018-11-21] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-license} matched added key SourceIdentifier [openconfig-license@2020-04-22] 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase SOURCE_LINKAGE 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase SOURCE_LINKAGE 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase SOURCE_LINKAGE 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase SOURCE_LINKAGE 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase SOURCE_LINKAGE 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase SOURCE_LINKAGE 08:15:28.532 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase SOURCE_LINKAGE 08:15:28.533 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase SOURCE_LINKAGE 08:15:28.533 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase SOURCE_LINKAGE 08:15:28.533 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase SOURCE_LINKAGE 08:15:28.533 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase SOURCE_LINKAGE 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_LINKAGE finished 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase STATEMENT_DEFINITION 08:15:28.534 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase STATEMENT_DEFINITION started 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase STATEMENT_DEFINITION 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase STATEMENT_DEFINITION 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase STATEMENT_DEFINITION 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase STATEMENT_DEFINITION 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase STATEMENT_DEFINITION 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase STATEMENT_DEFINITION 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase STATEMENT_DEFINITION 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase STATEMENT_DEFINITION 08:15:28.543 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase STATEMENT_DEFINITION 08:15:28.544 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase STATEMENT_DEFINITION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase STATEMENT_DEFINITION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase STATEMENT_DEFINITION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase STATEMENT_DEFINITION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase STATEMENT_DEFINITION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase STATEMENT_DEFINITION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase STATEMENT_DEFINITION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase STATEMENT_DEFINITION finished 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase FULL_DECLARATION 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase FULL_DECLARATION started 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.545 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.546 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.547 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.548 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.549 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data] got key (test:model)test-data 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.550 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.551 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data] got key (test:model)test-data 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data, (test:model)nested-container] got key (test:model)test-data 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.552 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.553 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.554 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.555 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.556 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@27f1773 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@452f3aca 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@287790a0 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1f59131b 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@65e75b0c 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5922c410 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4d44ad04 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a52be7c 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@4532b901 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase FULL_DECLARATION 08:15:28.557 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data, (test:model)nested-container] got key (test:model)nested-container 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase FULL_DECLARATION 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase FULL_DECLARATION finished 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase EFFECTIVE_MODEL 08:15:28.558 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase EFFECTIVE_MODEL started 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase EFFECTIVE_MODEL 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase EFFECTIVE_MODEL 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase EFFECTIVE_MODEL 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase EFFECTIVE_MODEL 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase EFFECTIVE_MODEL 08:15:28.559 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase EFFECTIVE_MODEL 08:15:28.560 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase EFFECTIVE_MODEL 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface materialized 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces materialized 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface materialized 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface materialized 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)config from (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)config materialized 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)state from (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)state materialized 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase EFFECTIVE_MODEL 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase EFFECTIVE_MODEL 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)components 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/platform?revision=2021-01-18)component from (http://openconfig.net/yang/platform?revision=2021-01-18)component 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/platform?revision=2021-01-18)component materialized 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)component 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/platform?revision=2021-01-18)state from (http://openconfig.net/yang/platform?revision=2021-01-18)state 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/platform?revision=2021-01-18)state materialized 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)state 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase EFFECTIVE_MODEL 08:15:28.561 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config from (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config materialized 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state from (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state materialized 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/system?revision=2020-04-13)system] got key (http://openconfig.net/yang/system?revision=2020-04-13)system 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase EFFECTIVE_MODEL 08:15:28.562 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase EFFECTIVE_MODEL finished 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=2} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=2} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity]} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:28.564 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=2} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=2} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=2} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity]} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=1} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=1} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)host]} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config} 08:15:28.565 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)selector, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)selectors, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)console, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-server, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-servers, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)logging-top, refCount=SWEEPING} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=2} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=2} 08:15:28.566 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=0} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=2} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:28.567 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=2} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=2} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=2} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=2} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)index]} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)name]} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex} 08:15:28.568 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)index]} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config} 08:15:28.569 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.570 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:28.571 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-control-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-pause-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-oversize-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-undersize-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-jabber-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-fragment-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-8021q-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-crc-errors, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-block-errors, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-carrier-errors, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-interrupted-tx, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-late-collision, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-errors-rx, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-single-collision, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-symbol-error, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-maxsize-exceeded, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-control-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-pause-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-8021q-frames, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-errors-tx, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:28.572 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=6} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=6} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=6} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=1} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=1} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=1} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=5} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=5} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=5} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=4} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=4} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=4} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=3} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=3} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=3} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=2} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=2} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=2} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)stat-interval-state, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-max-time, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 7 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg-min-max-instant-stats-pct, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface-ref, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)base-interface-ref-state, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)hold-time, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:28.575 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, refCount=SWEEPING} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=2} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=2} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=2} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=2} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=2} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=2} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=2} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=2} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id]} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=0} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=0} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:28.576 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=2} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=2} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=2} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=2} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=2} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=2} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=2} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=2} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)address]} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:28.577 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)hostname]} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=2} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)key-id]} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)address]} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)version} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)version} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved, refCount=1} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=8} 08:15:28.578 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=8} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=8} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=8} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=8} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=8} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=8} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=7} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=7} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=7} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=7} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=7} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=7} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=7} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=6} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=6} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=6} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=6} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=6} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=6} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=6} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=5} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=5} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=5} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=5} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=5} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=5} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=5} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=4} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=4} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=4} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=4} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=4} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=4} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=4} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=3} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=3} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=3} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=3} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=3} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=3} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=3} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=2} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=2} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=2} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=2} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=2} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=2} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=2} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=SWEEPING} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=SWEEPING} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=SWEEPING} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=SWEEPING} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:28.579 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=2} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=2} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=2} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=2} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)search} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)search} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=4} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=4} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=4} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=2} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=2} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=3} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=3} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=3} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=2} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit} 08:15:28.580 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)logging, refCount=SWEEPING} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity], refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)host], refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity], refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=1} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=2} 08:15:28.581 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=2} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=2} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=2} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=2} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)username]} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=2} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type]} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=2} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=2} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type]} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record} 08:15:28.582 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=2} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=1} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts} 08:15:28.583 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)address]} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)name]} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type], refCount=3} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=3} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type], refCount=3} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=3} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=4} 08:15:28.584 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)username], refCount=3} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=3} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)name], refCount=1} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)address], refCount=3} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=3} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=4} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=7} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=5} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=5} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=5} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=5} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=5} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=5} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=10} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=10} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=10} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=10} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=1} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=0} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)index]} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=1} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)index} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)total} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)user} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt} 08:15:28.585 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=0} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid], refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/alarms?revision=2019-07-09)id], refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)config, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=2} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=2} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=2} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/messages?revision=2018-08-13)service]} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=0} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=0} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=1} 08:15:28.586 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/messages?revision=2018-08-13)service], refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=2} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=2} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=2} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/license?revision=2020-04-22)license-id]} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)active} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)config, refCount=0} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)active} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)description} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/license?revision=2020-04-22)license-id], refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=1} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)message} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.587 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)total} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)user} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.588 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)counters} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=4} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=4} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id]} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=5} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=7} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=SWEEPING} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=SWEEPING} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=SWEEPING} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=SWEEPING} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.589 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)tacacs, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)radius, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server-group, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server-groups, refCount=SWEEPING} 08:15:28.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@555746a4} unlocked 08:15:28.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@555746a4} readied 08:15:28.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@555746a4} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=SWEEPING} 08:15:28.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@555746a4} completed successfully 08:15:28.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)servers, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-user, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)user, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)users, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)events, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)events, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)aaa, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=2} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=2} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=2} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=SWEEPING} 08:15:28.590 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)config, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)state, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)ssh-server, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)config, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)state, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)telnet-server, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)state, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)process, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)processes, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=2} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=SWEEPING} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)instant, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)avg, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)interval, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min-time, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max-time, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=1} 08:15:28.591 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)instant, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)avg, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)min, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)max, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)interval, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)min-time, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)max-time, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)available, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)utilized, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)memory} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description} 08:15:28.592 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)temperature} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)equipment-failure, refCount=1} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)equipment-mismatch, refCount=1} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)chassis} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)port} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)power-supply} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fan} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fabric} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)storage} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)cpu} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)integrated-circuit} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)backplane} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-module} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)instant, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)avg, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)property, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)properties, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)subcomponent, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)subcomponents, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)temperature, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)available, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)utilized, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)memory, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)chassis, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)port, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)power-supply, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fan, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fabric, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)storage, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)cpu, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)integrated-circuit, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)backplane, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-module, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 7 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:28.593 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)component, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)components, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)alarm, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)alarms, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=0} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)message} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)message, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)debug-service, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)debug-entries, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)messages, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)licenses, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)clock, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)host-entry, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)host-entries, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)server, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)servers, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)dns, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)server, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)servers, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-key, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-keys, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)memory, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)total, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)user, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt, refCount=SWEEPING} 08:15:28.594 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)cpu, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)cpus, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 14 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)system, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)controller, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)controllers, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connection, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connections, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)agent, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)openflow, refCount=SWEEPING} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(test:aug)name]} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)name, refCount=1} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)name, refCount=1} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)type, refCount=1} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)mtu, refCount=1} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:model)augmented-data, refCount=1} 08:15:28.595 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)interface, refCount=1} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-control-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-pause-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-oversize-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-undersize-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-jabber-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-fragment-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-8021q-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-crc-errors, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-block-errors, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-carrier-errors, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-interrupted-tx, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-late-collision, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-errors-rx, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-single-collision, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-symbol-error, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-maxsize-exceeded, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-control-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-pause-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-8021q-frames, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-errors-tx, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)counters, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, refCount=SWEEPING} 08:15:28.597 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=1} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=2} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=2} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=2} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=1} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=1} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)member, refCount=0} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)member, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)members, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged-list, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged-range, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-list, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-outer-list, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-range, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-outer-range, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-outer-range, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)match, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)ingress-mapping, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:28.598 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)egress-mapping, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:28.599 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)routed-vlan, refCount=SWEEPING} 08:15:28.600 [main] INFO org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- ThreadFactory created: DOM-CFG-DCL 08:15:28.600 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Following schema contexts will be attempted EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-aug}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-model}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}]} 08:15:28.600 [main] INFO org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- ThreadFactory created: DOM-OPER-DCL 08:15:28.600 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Following schema contexts will be attempted EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-aug}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-model}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}]} 08:15:28.600 [main] INFO org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- ThreadFactory created: DOM-STATE-DCL 08:15:28.600 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Following schema contexts will be attempted EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-aug}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-model}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}]} 08:15:28.601 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: DOM-CFG-0 allocated with snapshot Version[2355f1d9] 08:15:28.601 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: DOM-CFG-0 Write: /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces:ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, body=UnmodifiableCollection{[ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=eth3}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=1500}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=eth3}]}, ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=br0}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, body=5}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, body=LACP}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=54}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=34}]}]}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, body=true}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=45}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=37}]}]}]}]}]}}]} 08:15:28.602 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: DOM-CFG-0 : Ready 08:15:28.602 [main] DEBUG org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer -- Adding mandatory child /(http://openconfig.net/yang/interfaces?revision=2021-04-06)config/type 08:15:28.602 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: DOM-CFG-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.602 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: DOM-CFG-0 can be committed 08:15:28.602 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[2355f1d9], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to MaterializedContainerNode{version=Version[2355f1d9], subtreeVersion=Version[7fa7c4bc], children={(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces=SimpleContainerNode{version=Version[7fa7c4bc], data=ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, body=UnmodifiableCollection{[ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=eth3}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=1500}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=eth3}]}, ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=br0}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, body=5}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, body=LACP}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=54}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=34}]}]}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, body=true}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=45}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=37}]}]}]}]}]}}]}}}} 08:15:28.602 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: DOM-CFG-0 : Closed after submit 08:15:28.604 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: DOM-STATE-0 allocated with snapshot Version[4304d3ba] 08:15:28.604 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: DOM-STATE-0 Write: /:ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)system, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)alarms, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)alarm, body=[ImmutableMapEntryNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)alarm[{(http://openconfig.net/yang/system?revision=2020-04-13)id=1}], body=[ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)id, body=1}, ImmutableContainerNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)id, body=1}, ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)time-created, body=1597765771184}, ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)text, body=alarm-text}, ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)resource, body=res}, ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)severity, body=(http://openconfig.net/yang/alarms/types?revision=2018-11-21)MINOR}]}]}]}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)openflow, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)agent, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, body=5}, ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, body=00:16:3e:00:00:00:00:00}, ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, body=10}, ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, body=SECURE}, ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, body=10}]}]}]}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, body=[ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=br0}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, body=1}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, body=DOWN}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, body=101}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, body=105}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, body=106}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, body=107}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, body=104}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, body=108}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, body=103}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, body=102}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, body=UP}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, body=LACP}, ImmutableSystemLeafSetNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, body=[ImmutableLeafSetEntryNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member[br0], body=br0}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, body=20}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, body=5}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=54}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=34}]}]}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, body=FULL}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, body=00:00:0A:BB:28:FC}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=45}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=37}]}]}]}]}]}]}]} 08:15:28.604 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: DOM-STATE-0 : Ready 08:15:28.604 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: DOM-STATE-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.604 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: DOM-STATE-0 can be committed 08:15:28.604 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[4304d3ba], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to SimpleContainerNode{version=Version[3032b238], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)system, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)alarms, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)alarm, body=[ImmutableMapEntryNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)alarm[{(http://openconfig.net/yang/system?revision=2020-04-13)id=1}], body=[ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)id, body=1}, ImmutableContainerNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)id, body=1}, ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)time-created, body=1597765771184}, ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)text, body=alarm-text}, ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)resource, body=res}, ImmutableLeafNode{name=(http://openconfig.net/yang/system?revision=2020-04-13)severity, body=(http://openconfig.net/yang/alarms/types?revision=2018-11-21)MINOR}]}]}]}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)openflow, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)agent, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, body=5}, ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, body=00:16:3e:00:00:00:00:00}, ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, body=10}, ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, body=SECURE}, ImmutableLeafNode{name=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, body=10}]}]}]}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, body=[ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=br0}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, body=1}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, body=DOWN}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, body=101}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, body=105}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, body=106}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, body=107}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, body=104}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, body=108}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, body=103}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, body=102}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, body=UP}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, body=LACP}, ImmutableSystemLeafSetNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, body=[ImmutableLeafSetEntryNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member[br0], body=br0}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, body=20}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, body=5}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=54}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=34}]}]}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, body=FULL}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, body=00:00:0A:BB:28:FC}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=45}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=37}]}]}]}]}]}]}]}} 08:15:28.604 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: DOM-STATE-0 : Closed after submit 08:15:28.604 [main] INFO org.opendaylight.gnmi.simulatordevice.impl.SimulatedGnmiDevice -- Starting gNMI device simulator on 127.0.0.1:41545 ... 08:15:28.606 [main] INFO org.opendaylight.gnmi.simulatordevice.impl.SimulatedGnmiDevice -- gNMI device simulator is up and running 08:15:28.607 [main] INFO org.opendaylight.mdsal.dom.broker.DOMNotificationRouter -- DOM Notification Router started 08:15:28.607 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Following schema contexts will be attempted EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-app-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-mdsal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-rpc}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-encrypt-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-password-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=augmented-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=example-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-certificate-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-force-capabilities}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-yang-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-crypt-hash}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-tls-cipher-suite-algs}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-crypto-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-ip}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-keystore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-acm}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-with-defaults}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-network-instance}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-monitoring}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-truststore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-x509-cert-to-name}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-patch}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-schema-mount}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=network-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=odl-device-notification}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote-augment}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=yang-ext}}]} 08:15:28.607 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Following schema contexts will be attempted EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-app-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-mdsal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-rpc}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-encrypt-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-password-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=augmented-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=example-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-certificate-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-force-capabilities}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-yang-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-crypt-hash}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-tls-cipher-suite-algs}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-crypto-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-ip}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-keystore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-acm}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-with-defaults}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-network-instance}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-monitoring}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-truststore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-x509-cert-to-name}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-patch}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-schema-mount}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=network-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=odl-device-notification}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote-augment}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=yang-ext}}]} 08:15:28.607 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- RESTCONF Server starting on: 127.0.0.1:45697 08:15:28.608 [main] INFO org.opendaylight.mdsal.dom.broker.DOMRpcRouter -- DOM RPC/Action router started 08:15:28.608 [main] INFO org.opendaylight.mdsal.dom.broker.DOMNotificationRouter -- DOM Notification Router started 08:15:28.618 [main] INFO org.opendaylight.aaa.encrypt.impl.AAAEncryptionServiceImpl -- AAAEncryptionService activated 08:15:28.619 [main] INFO org.opendaylight.gnmi.southbound.yangmodule.GnmiSouthboundModule -- Starting ODL gNMI Southbound Component 08:15:28.619 [main] INFO org.opendaylight.gnmi.southbound.provider.GnmiSouthboundProvider -- gNMI init started 08:15:28.628 [main] INFO org.opendaylight.gnmi.southbound.provider.GnmiSouthboundProvider -- Loading provided initial yang loaders 08:15:28.631 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model gnmi-test-aug with version 1.0.0 to operational datastore 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-0 allocated with snapshot Version[6975ed37] 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-0 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]} 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-0 : Ready 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-0 is submitted for execution. 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: canCommit Started 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-0 can be committed 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: preCommit Started 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: doCommit Started 08:15:28.632 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[6975ed37], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[7e1f1856], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=SimpleContainerNode{version=Version[7e1f1856], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models, body=[ImmutableSystemMapNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model, body=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}]}}}} 08:15:28.632 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: doCommit completed 08:15:28.632 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByPathYangLoaderService -- Loaded yang model gnmi-test-aug with version 1.0.0 08:15:28.637 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model gnmi-test-model with version 1.0.0 to operational datastore 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-1 allocated with snapshot Version[7e1f1856] 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-1 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]} 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-1 : Ready 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-1 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-1 is submitted for execution. 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: canCommit Started 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-1 can be committed 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: preCommit Started 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: doCommit Started 08:15:28.638 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[7e1f1856], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=SimpleContainerNode{version=Version[7e1f1856], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models, body=[ImmutableSystemMapNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model, body=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}]}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[217764d9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[217764d9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[217764d9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.638 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: doCommit completed 08:15:28.638 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByPathYangLoaderService -- Loaded yang model gnmi-test-model with version 1.0.0 08:15:28.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@48155a09} unlocked 08:15:28.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@48155a09} readied 08:15:28.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@48155a09} 08:15:28.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@48155a09} completed successfully 08:15:28.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:28.647 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-platform-types with version 1.1.0 to operational datastore 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-2 allocated with snapshot Version[217764d9] 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-2 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]} 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-2 : Ready 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-2 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-2 is submitted for execution. 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: canCommit Started 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-2 can be committed 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: preCommit Started 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: doCommit Started 08:15:28.651 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[217764d9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[217764d9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[217764d9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[ebe719b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[ebe719b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[ebe719b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.651 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: doCommit completed 08:15:28.651 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-platform-types with version 1.1.0 08:15:28.658 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-inet-types with version 0.4.0 to operational datastore 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-3 allocated with snapshot Version[ebe719b] 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-3 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]} 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-3 : Ready 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-3 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-3 is submitted for execution. 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: canCommit Started 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-3 can be committed 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: preCommit Started 08:15:28.666 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: doCommit Started 08:15:28.666 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[ebe719b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[ebe719b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[ebe719b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[6cb36532], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6cb36532], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6cb36532], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.667 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: doCommit completed 08:15:28.667 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-inet-types with version 0.4.0 08:15:28.671 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-vlan-types with version 3.1.1 to operational datastore 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-4 allocated with snapshot Version[6cb36532] 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-4 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]} 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-4 : Ready 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-4 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-4 is submitted for execution. 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: canCommit Started 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-4 can be committed 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: preCommit Started 08:15:28.675 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: doCommit Started 08:15:28.675 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[6cb36532], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6cb36532], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6cb36532], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[2d3bf411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[2d3bf411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[2d3bf411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.676 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: doCommit completed 08:15:28.676 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-vlan-types with version 3.1.1 08:15:28.680 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-yang-types with version 0.3.0 to operational datastore 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-5 allocated with snapshot Version[2d3bf411] 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-5 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]} 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-5 : Ready 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-5 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-5 is submitted for execution. 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: canCommit Started 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-5 can be committed 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: preCommit Started 08:15:28.683 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: doCommit Started 08:15:28.683 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[2d3bf411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[2d3bf411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[2d3bf411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[49853c8d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[49853c8d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[49853c8d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.684 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: doCommit completed 08:15:28.684 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-yang-types with version 0.3.0 08:15:28.688 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-procmon with version 0.4.0 to operational datastore 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-6 allocated with snapshot Version[49853c8d] 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-6 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]} 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-6 : Ready 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-6 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-6 is submitted for execution. 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: canCommit Started 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-6 can be committed 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: preCommit Started 08:15:28.690 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: doCommit Started 08:15:28.690 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[49853c8d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[49853c8d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[49853c8d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[528a0abf], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[528a0abf], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[528a0abf], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.691 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: doCommit completed 08:15:28.691 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-procmon with version 0.4.0 08:15:28.696 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-system-terminal with version 0.3.1 to operational datastore 08:15:28.697 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@197fc6ca} unlocked 08:15:28.697 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@197fc6ca} readied 08:15:28.697 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@197fc6ca} 08:15:28.697 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@197fc6ca} completed successfully 08:15:28.697 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-7 allocated with snapshot Version[528a0abf] 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-7 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]} 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-7 : Ready 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-7 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-7 is submitted for execution. 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: canCommit Started 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-7 can be committed 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: preCommit Started 08:15:28.698 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: doCommit Started 08:15:28.698 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[528a0abf], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[528a0abf], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[528a0abf], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[683354d1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[683354d1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[683354d1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.700 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: doCommit completed 08:15:28.700 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-system-terminal with version 0.3.1 08:15:28.717 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa with version 0.5.0 to operational datastore 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-8 allocated with snapshot Version[683354d1] 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-8 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]} 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-8 : Ready 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-8 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-8 is submitted for execution. 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: canCommit Started 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-8 can be committed 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: preCommit Started 08:15:28.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: doCommit Started 08:15:28.725 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[683354d1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[683354d1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[683354d1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[eaf7fca], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[eaf7fca], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[eaf7fca], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.727 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: doCommit completed 08:15:28.727 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa with version 0.5.0 08:15:28.731 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-license with version 0.2.0 to operational datastore 08:15:28.732 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-9 allocated with snapshot Version[eaf7fca] 08:15:28.732 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-9 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]} 08:15:28.733 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-9 : Ready 08:15:28.733 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-9 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.733 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-9 is submitted for execution. 08:15:28.733 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: canCommit Started 08:15:28.733 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-9 can be committed 08:15:28.733 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: preCommit Started 08:15:28.733 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: doCommit Started 08:15:28.733 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[eaf7fca], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[eaf7fca], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[eaf7fca], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[7a2bdd7c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[7a2bdd7c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[7a2bdd7c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.735 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: doCommit completed 08:15:28.735 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-license with version 0.2.0 08:15:28.747 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-ethernet with version 2.11.0 to operational datastore 08:15:28.755 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-10 allocated with snapshot Version[7a2bdd7c] 08:15:28.755 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-10 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]} 08:15:28.756 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-10 : Ready 08:15:28.756 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-10 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-10 is submitted for execution. 08:15:28.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: canCommit Started 08:15:28.756 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-10 can be committed 08:15:28.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: preCommit Started 08:15:28.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: doCommit Started 08:15:28.756 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[7a2bdd7c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[7a2bdd7c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[7a2bdd7c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[6fc179e4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6fc179e4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6fc179e4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.759 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: doCommit completed 08:15:28.759 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-ethernet with version 2.11.0 08:15:28.764 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-alarms with version 0.3.2 to operational datastore 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-11 allocated with snapshot Version[6fc179e4] 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-11 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]} 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-11 : Ready 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-11 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-11 is submitted for execution. 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: canCommit Started 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-11 can be committed 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: preCommit Started 08:15:28.767 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: doCommit Started 08:15:28.767 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[6fc179e4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6fc179e4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6fc179e4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[a5cf5d3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[a5cf5d3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[a5cf5d3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.772 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: doCommit completed 08:15:28.772 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-alarms with version 0.3.2 08:15:28.819 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model iana-if-type with version 2023-01-26 to operational datastore 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-12 allocated with snapshot Version[a5cf5d3] 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-12 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]} 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-12 : Ready 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-12 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-12 is submitted for execution. 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: canCommit Started 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-12 can be committed 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: preCommit Started 08:15:28.833 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: doCommit Started 08:15:28.833 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[a5cf5d3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[a5cf5d3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[a5cf5d3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[18601190], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[18601190], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[18601190], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.839 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: doCommit completed 08:15:28.839 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model iana-if-type with version 2023-01-26 08:15:28.842 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-alarm-types with version 0.2.1 to operational datastore 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-13 allocated with snapshot Version[18601190] 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-13 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]} 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-13 : Ready 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-13 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-13 is submitted for execution. 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: canCommit Started 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-13 can be committed 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: preCommit Started 08:15:28.844 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: doCommit Started 08:15:28.844 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[18601190], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[18601190], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[18601190], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[372eb990], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[372eb990], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[372eb990], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.851 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: doCommit completed 08:15:28.851 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-alarm-types with version 0.2.1 08:15:28.855 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa-types with version 0.4.1 to operational datastore 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-14 allocated with snapshot Version[372eb990] 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-14 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]} 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-14 : Ready 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-14 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-14 is submitted for execution. 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: canCommit Started 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-14 can be committed 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: preCommit Started 08:15:28.857 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: doCommit Started 08:15:28.857 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[372eb990], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[372eb990], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[372eb990], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[105e8f78], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[105e8f78], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[105e8f78], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.864 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: doCommit completed 08:15:28.864 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa-types with version 0.4.1 08:15:28.885 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model ietf-interfaces with version 2018-02-20 to operational datastore 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-15 allocated with snapshot Version[105e8f78] 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-15 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]} 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-15 : Ready 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-15 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-15 is submitted for execution. 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: canCommit Started 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-15 can be committed 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: preCommit Started 08:15:28.905 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: doCommit Started 08:15:28.905 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[105e8f78], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[105e8f78], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[105e8f78], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[57c1bb3d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[57c1bb3d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[57c1bb3d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.914 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: doCommit completed 08:15:28.914 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model ietf-interfaces with version 2018-02-20 08:15:28.924 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-system-logging with version 0.3.1 to operational datastore 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-16 allocated with snapshot Version[57c1bb3d] 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-16 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]} 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-16 : Ready 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-16 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-16 is submitted for execution. 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: canCommit Started 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-16 can be committed 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: preCommit Started 08:15:28.928 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: doCommit Started 08:15:28.928 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[57c1bb3d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[57c1bb3d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[57c1bb3d], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[3e6eaeb3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[3e6eaeb3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[3e6eaeb3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.937 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: doCommit completed 08:15:28.937 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-system-logging with version 0.3.1 08:15:28.949 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-types with version 0.6.0 to operational datastore 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-17 allocated with snapshot Version[3e6eaeb3] 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-17 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]} 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-17 : Ready 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-17 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-17 is submitted for execution. 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: canCommit Started 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-17 can be committed 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: preCommit Started 08:15:28.954 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: doCommit Started 08:15:28.954 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[3e6eaeb3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[3e6eaeb3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[3e6eaeb3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[1c6eba6c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[1c6eba6c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[1c6eba6c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.964 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: doCommit completed 08:15:28.964 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-types with version 0.6.0 08:15:28.969 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa-radius with version 0.5.0 to operational datastore 08:15:28.970 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-18 allocated with snapshot Version[1c6eba6c] 08:15:28.970 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-18 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]} 08:15:28.971 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-18 : Ready 08:15:28.971 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-18 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.971 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-18 is submitted for execution. 08:15:28.971 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-18: canCommit Started 08:15:28.971 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-18 can be committed 08:15:28.971 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-18: preCommit Started 08:15:28.971 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-18: doCommit Started 08:15:28.971 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[1c6eba6c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[1c6eba6c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[1c6eba6c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[47174743], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[47174743], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[47174743], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.981 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-18: doCommit completed 08:15:28.981 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa-radius with version 0.5.0 08:15:28.983 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-types with version 0.2.1 to operational datastore 08:15:28.984 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-19 allocated with snapshot Version[47174743] 08:15:28.984 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-19 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]} 08:15:28.984 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-19 : Ready 08:15:28.984 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-19 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:28.984 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-19 is submitted for execution. 08:15:28.984 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-19: canCommit Started 08:15:28.985 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-19 can be committed 08:15:28.985 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-19: preCommit Started 08:15:28.985 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-19: doCommit Started 08:15:28.985 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[47174743], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[47174743], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[47174743], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[21ecf6cb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[21ecf6cb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[21ecf6cb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:28.995 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-19: doCommit completed 08:15:28.995 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-types with version 0.2.1 08:15:28.999 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-aggregate with version 2.4.3 to operational datastore 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-20 allocated with snapshot Version[21ecf6cb] 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-20 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]} 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-20 : Ready 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-20 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-20 is submitted for execution. 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-20: canCommit Started 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-20 can be committed 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-20: preCommit Started 08:15:29.002 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-20: doCommit Started 08:15:29.002 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[21ecf6cb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[21ecf6cb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[21ecf6cb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[7e6fd91c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[7e6fd91c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[7e6fd91c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.012 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-20: doCommit completed 08:15:29.012 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-aggregate with version 2.4.3 08:15:29.034 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-system with version 0.10.0 to operational datastore 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-21 allocated with snapshot Version[7e6fd91c] 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-21 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]} 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-21 : Ready 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-21 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-21 is submitted for execution. 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-21: canCommit Started 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-21 can be committed 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-21: preCommit Started 08:15:29.045 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-21: doCommit Started 08:15:29.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3f1ac2cf} unlocked 08:15:29.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3f1ac2cf} readied 08:15:29.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3f1ac2cf} 08:15:29.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3f1ac2cf} completed successfully 08:15:29.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.045 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[7e6fd91c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[7e6fd91c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[7e6fd91c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[1f989aec], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[1f989aec], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[1f989aec], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.057 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-21: doCommit completed 08:15:29.057 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-system with version 0.10.0 08:15:29.060 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa-tacacs with version 0.5.0 to operational datastore 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-22 allocated with snapshot Version[1f989aec] 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-22 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]} 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-22 : Ready 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-22 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-22 is submitted for execution. 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-22: canCommit Started 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-22 can be committed 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-22: preCommit Started 08:15:29.062 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-22: doCommit Started 08:15:29.062 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[1f989aec], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[1f989aec], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[1f989aec], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[607a1a9f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[607a1a9f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[607a1a9f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.074 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-22: doCommit completed 08:15:29.074 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa-tacacs with version 0.5.0 08:15:29.080 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model ietf-yang-types with version 2013-07-15 to operational datastore 08:15:29.089 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-23 allocated with snapshot Version[607a1a9f] 08:15:29.089 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-23 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]} 08:15:29.090 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-23 : Ready 08:15:29.090 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-23 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.090 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-23 is submitted for execution. 08:15:29.090 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-23: canCommit Started 08:15:29.090 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-23 can be committed 08:15:29.090 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-23: preCommit Started 08:15:29.090 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-23: doCommit Started 08:15:29.090 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[607a1a9f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[607a1a9f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[607a1a9f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[448ec879], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[448ec879], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[448ec879], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.102 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-23: doCommit completed 08:15:29.102 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model ietf-yang-types with version 2013-07-15 08:15:29.121 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-interfaces with version 2.5.0 to operational datastore 08:15:29.129 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5097c1ee} unlocked 08:15:29.129 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5097c1ee} readied 08:15:29.129 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5097c1ee} 08:15:29.129 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5097c1ee} completed successfully 08:15:29.129 [mdsal-subscription-counters0] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.137 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-24 allocated with snapshot Version[448ec879] 08:15:29.137 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-24 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]} 08:15:29.138 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-24 : Ready 08:15:29.138 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-24 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.138 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-24 is submitted for execution. 08:15:29.138 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-24: canCommit Started 08:15:29.138 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-24 can be committed 08:15:29.138 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-24: preCommit Started 08:15:29.138 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-24: doCommit Started 08:15:29.138 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[448ec879], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[448ec879], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[448ec879], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[b11b157], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[b11b157], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[b11b157], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.151 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-24: doCommit completed 08:15:29.151 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-interfaces with version 2.5.0 08:15:29.156 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-messages with version 0.0.1 to operational datastore 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-25 allocated with snapshot Version[b11b157] 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-25 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]} 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-25 : Ready 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-25 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-25 is submitted for execution. 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-25: canCommit Started 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-25 can be committed 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-25: preCommit Started 08:15:29.159 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-25: doCommit Started 08:15:29.159 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[b11b157], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[b11b157], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[b11b157], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[306dfcac], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[306dfcac], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[306dfcac], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.174 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-25: doCommit completed 08:15:29.174 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-messages with version 0.0.1 08:15:29.176 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-openflow-types with version 0.1.3 to operational datastore 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-26 allocated with snapshot Version[306dfcac] 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-26 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]} 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-26 : Ready 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-26 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-26 is submitted for execution. 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-26: canCommit Started 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-26 can be committed 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-26: preCommit Started 08:15:29.177 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-26: doCommit Started 08:15:29.177 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[306dfcac], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[306dfcac], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[306dfcac], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[6f6418d6], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6f6418d6], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[6f6418d6], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.192 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-26: doCommit completed 08:15:29.192 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-openflow-types with version 0.1.3 08:15:29.211 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@32b00ce7} unlocked 08:15:29.211 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@32b00ce7} readied 08:15:29.211 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@32b00ce7} 08:15:29.211 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@32b00ce7} completed successfully 08:15:29.211 [mdsal-subscription-counters17] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.213 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-vlan with version 3.2.0 to operational datastore 08:15:29.219 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@551ed5ed} unlocked 08:15:29.219 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@551ed5ed} readied 08:15:29.219 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@551ed5ed} 08:15:29.219 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@551ed5ed} completed successfully 08:15:29.219 [mdsal-subscription-counters1] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.227 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-27 allocated with snapshot Version[6f6418d6] 08:15:29.227 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-27 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[ebe719b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[6cb36532], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[2d3bf411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[57c1bb3d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[58ea20a9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[58ea20a9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[58ea20a9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.242 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-27: doCommit completed 08:15:29.243 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-vlan with version 3.2.0 08:15:29.250 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-openflow with version 0.1.2 to operational datastore 08:15:29.253 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-28 allocated with snapshot Version[58ea20a9] 08:15:29.253 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-28 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow { yang-version "1"; namespace "http://openconfig.net/yang/openflow"; prefix "openflow"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-interfaces { prefix oc-if; } import openconfig-openflow-types { prefix of-types; } import openconfig-system { prefix oc-sys; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for Openflow."; oc-ext:openconfig-version "0.1.2"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes.Initial revision"; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping openflow-controller-config { description "Openflow controller config"; leaf name { type string; description "Name of this Openflow controller. All connections for the same controller need to have the same name."; } } grouping openflow-controller-state { description "Openflow controller state"; } grouping openflow-controllers-top { description "Top-level for the Openflow controllers model"; container controllers { description "Container for the Openflow controllers model"; list controller { key "name"; description "The Openflow Switch connects to all Openflow controllers configured"; leaf name { type leafref { path "../config/name"; } description "The name identifies the controller."; } container config { description "Container for the Openflow controller config."; uses openflow-controller-config; } container state { config false; description "Container for the Openflow controller state."; uses openflow-controller-config; uses openflow-controller-state; } uses openflow-connections-top; } } } grouping openflow-connections-config { description "Configuration data for OpenFlow controller connections"; leaf aux-id { type of-types:auxiliary-id; description "Controller auxiliary ID. Must be 0 for the main controller. One controller may have multiple auxiliary connections as specified by the Openflow protocol. Besides configuring the main controller, it is also possible to configure auxiliary connections. The main controller must have the aux-id set to zero. All others must have an aux-id different from 0."; } leaf priority { type uint8; description "Optional value for servicing auxiliary connections with different priorities."; } leaf address { type oc-inet:ip-address; description "The IP address of the controller."; } leaf port { type oc-inet:port-number; default 6653; description "Controller port to use."; } leaf transport { type of-types:transport; default TCP; description "Controller transport protocol used."; } leaf certificate-id { type string; description "Certificate ID is used for TLS connections. When installed, certificates are associated with an ID. This ID specifies the certificate to use in a TLS connection."; } leaf source-interface { type oc-if:base-interface-ref; description "Optionally specify the source interface for the controller connection."; } } grouping openflow-connections-state { description "Operational state data for OpenFlow controller connections"; leaf connected { type boolean; description "When set to true, indicates the connection between the switch and controller is established."; } } grouping openflow-connections-top { description "Top-level grouping for OpenFlow controller connections"; container connections { description "Enclosing container for list of controller connections"; list connection { key "aux-id"; description "List of connections to the OpenFlow controller. The Openflow switch always connects to configured Openflow controllers. Each controller can have more than one connection, called auxiliary Openflow connections."; leaf aux-id { type leafref { path "../config/aux-id"; } description "Reference to auxiliary id list key"; } container config { description "Configuration data for OpenFlow controller connections"; uses openflow-connections-config; } container state { config false; description "Operational state data for OpenFlow controller connections"; uses openflow-connections-config; uses openflow-connections-state; } } } } grouping openflow-agent-config { description "Openflow agent config"; leaf datapath-id { type of-types:datapath-id; description "Datapath unique ID. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } leaf failure-mode { type of-types:failure-mode; description "Failure mode for Openflow."; } leaf backoff-interval { type uint32; units seconds; description "Openflow agent connection backoff interval."; } leaf max-backoff { type uint32; units seconds; description "Openflow agent max backoff time."; } leaf inactivity-probe { type uint32; units seconds; description "Openflow agent inactivity probe period."; } } grouping openflow-agent-state { description "Openflow agent state"; } grouping openflow-agent-top { description "Top-level for the Openflow agent model"; container agent { description "Container for the Openflow agent model."; container config { description "Container for the Openflow agent config."; uses openflow-agent-config; } container state { config false; description "Container for the Openflow agent state."; uses openflow-agent-config; uses openflow-agent-state; } } } grouping openflow-top { description "Top-level for the Openflow model"; container openflow { description "Container for Openflow model"; uses openflow-controllers-top; uses openflow-agent-top; } } augment "/oc-sys:system" { description "Adding OpenConfig data to the system model"; uses openflow-top; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.2}]} 08:15:29.253 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-28 : Ready 08:15:29.253 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-28 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.253 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-28 is submitted for execution. 08:15:29.253 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-28: canCommit Started 08:15:29.253 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-28 can be committed 08:15:29.253 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-28: preCommit Started 08:15:29.254 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-28: doCommit Started 08:15:29.257 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cfb793b} unlocked 08:15:29.257 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cfb793b} readied 08:15:29.257 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cfb793b} 08:15:29.257 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cfb793b} completed successfully 08:15:29.257 [mdsal-subscription-counters13] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.254 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[58ea20a9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[58ea20a9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[58ea20a9], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[66369624], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[66369624], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[66369624], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.281 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-28: doCommit completed 08:15:29.281 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-openflow with version 0.1.2 08:15:29.284 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@520d57fb} unlocked 08:15:29.284 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@520d57fb} readied 08:15:29.284 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@520d57fb} 08:15:29.284 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@520d57fb} completed successfully 08:15:29.284 [mdsal-subscription-counters15] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.285 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-extensions with version 2020-06-16 to operational datastore 08:15:29.290 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-29 allocated with snapshot Version[66369624] 08:15:29.290 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-29 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]} 08:15:29.290 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-29 : Ready 08:15:29.290 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-29 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.290 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-29 is submitted for execution. 08:15:29.290 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-29: canCommit Started 08:15:29.291 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-29 can be committed 08:15:29.291 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-29: preCommit Started 08:15:29.291 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-29: doCommit Started 08:15:29.291 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[66369624], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[66369624], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[66369624], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[171f0280], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[171f0280], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[171f0280], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.308 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-29: doCommit completed 08:15:29.308 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-extensions with version 2020-06-16 08:15:29.318 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6068be69} unlocked 08:15:29.318 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6068be69} readied 08:15:29.318 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6068be69} 08:15:29.318 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6068be69} completed successfully 08:15:29.318 [mdsal-subscription-counters8] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.323 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-platform with version 0.13.0 to operational datastore 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-30 allocated with snapshot Version[171f0280] 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-30 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]} 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-30 : Ready 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-30 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-30 is submitted for execution. 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-30: canCommit Started 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-30 can be committed 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-30: preCommit Started 08:15:29.332 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-30: doCommit Started 08:15:29.332 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[171f0280], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[171f0280], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[171f0280], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.349 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-30: doCommit completed 08:15:29.349 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-platform with version 0.13.0 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: CFG-0 allocated with snapshot Version[116d2321] 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: CFG-0 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]} 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: CFG-0 : Ready 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: CFG-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-31 is submitted for execution. 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-31: canCommit Started 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: CFG-0 can be committed 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-31: preCommit Started 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-31: doCommit Started 08:15:29.350 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[116d2321], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to MaterializedContainerNode{version=Version[116d2321], subtreeVersion=Version[6cd3d9f9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[6cd3d9f9], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}}} 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-31: doCommit completed 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-31 allocated with snapshot Version[404594bb] 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-31 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]} 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-31 : Ready 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-31 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-32 is submitted for execution. 08:15:29.350 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-32: canCommit Started 08:15:29.351 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-31 can be committed 08:15:29.351 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-32: preCommit Started 08:15:29.351 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-32: doCommit Started 08:15:29.351 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[75a110d8], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[75a110d8], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.368 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-32: doCommit completed 08:15:29.368 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree$Node -- Registration RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} added 08:15:29.368 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree$Node -- Registration RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} added 08:15:29.368 [main] INFO org.opendaylight.gnmi.southbound.provider.GnmiSouthboundProvider -- gNMI south-bound has successfully started 08:15:29.368 [main] INFO org.opendaylight.gnmi.southbound.yangmodule.GnmiSouthboundModule -- gNMI Southbound Provider initialized 08:15:29.369 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractDOMDataBroker -- Transactoin chain 0 created, backing store chains {OPERATIONAL=org.opendaylight.mdsal.dom.store.inmemory.DOMStoreTransactionChainImpl@61a1eeb4, CONFIGURATION=org.opendaylight.mdsal.dom.store.inmemory.DOMStoreTransactionChainImpl@13cfef68} 08:15:29.369 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-32 allocated with snapshot Version[75a110d8] 08:15:29.369 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-32 Write: /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)streams/stream/stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}]:ImmutableMapEntryNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}], body=[ImmutableLeafNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)description, body=Default XML encoded NETCONF stream}, ImmutableLeafNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name, body=NETCONF}]} 08:15:29.369 [main] DEBUG org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer -- Adding mandatory child /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time 08:15:29.369 [main] DEBUG org.opendaylight.restconf.server.mdsal.Rfc8040StreamSupport -- Stream NETCONF does not have a location, skipping not exposing it through ietf-restconf-monitoring 08:15:29.369 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-32 : Ready 08:15:29.369 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-32: unexpected failure when readying java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:200) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) 08:15:29.369 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-32 is submitted. Modifications: InMemoryDataTreeModification{state=Defunct{threadName=main, cause=java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time}} 08:15:29.369 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-33 is submitted for execution. 08:15:29.369 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-33: canCommit Started 08:15:29.370 [main] WARN org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Tx: DOM-33 Error during phase CAN_COMMIT, starting Abort org.opendaylight.mdsal.common.api.TransactionCommitFailedException: canCommit execution failed at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:42) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18) at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:82) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:37) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.canCommitBlocking(CommitCoordinationTask.java:103) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.call(CommitCoordinationTask.java:70) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:42) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:28) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80) at com.google.common.util.concurrent.DirectExecutorService.execute(DirectExecutorService.java:52) at com.google.common.util.concurrent.Futures.submit(Futures.java:192) at org.opendaylight.yangtools.util.concurrent.FluentFutures.submit(FluentFutures.java:136) at org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker.commit(SerializedDOMDataBroker.java:66) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:200) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ... 84 common frames omitted 08:15:29.370 [main] DEBUG org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry -- Failed to add default stream NETCONF org.opendaylight.mdsal.common.api.TransactionCommitFailedException: canCommit execution failed at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:42) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18) at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:82) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:37) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.canCommitBlocking(CommitCoordinationTask.java:103) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.call(CommitCoordinationTask.java:70) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:42) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:28) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80) at com.google.common.util.concurrent.DirectExecutorService.execute(DirectExecutorService.java:52) at com.google.common.util.concurrent.Futures.submit(Futures.java:192) at org.opendaylight.yangtools.util.concurrent.FluentFutures.submit(FluentFutures.java:136) at org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker.commit(SerializedDOMDataBroker.java:66) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:200) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ... 84 common frames omitted 08:15:29.370 [main] DEBUG org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry -- Model context updated to: EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-app-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-mdsal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-rpc}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-encrypt-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-password-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=augmented-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=example-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-certificate-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-force-capabilities}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-yang-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-crypt-hash}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-tls-cipher-suite-algs}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-crypto-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-ip}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-keystore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-acm}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-with-defaults}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-network-instance}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-monitoring}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-truststore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-x509-cert-to-name}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-patch}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-schema-mount}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=network-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=odl-device-notification}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote-augment}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=yang-ext}}]} 08:15:29.370 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-33 allocated with snapshot Version[75a110d8] 08:15:29.370 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-33 Write: /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)streams/stream/stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}]:ImmutableMapEntryNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}], body=[ImmutableLeafNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)description, body=Default XML encoded NETCONF stream}, ImmutableLeafNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name, body=NETCONF}]} 08:15:29.370 [main] DEBUG org.opendaylight.restconf.server.mdsal.Rfc8040StreamSupport -- Stream NETCONF does not have a location, skipping not exposing it through ietf-restconf-monitoring 08:15:29.370 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-33 : Ready 08:15:29.370 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-33: unexpected failure when readying java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.onModelContextUpdated(MdsalRestconfStreamRegistry.java:304) at org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService.registerSchemaContextListener(FixedDOMSchemaService.java:60) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:201) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) 08:15:29.370 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-33 is submitted. Modifications: InMemoryDataTreeModification{state=Defunct{threadName=main, cause=java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time}} 08:15:29.370 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-34 is submitted for execution. 08:15:29.370 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-34: canCommit Started 08:15:29.370 [main] WARN org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Tx: DOM-34 Error during phase CAN_COMMIT, starting Abort org.opendaylight.mdsal.common.api.TransactionCommitFailedException: canCommit execution failed at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:42) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18) at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:82) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:37) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.canCommitBlocking(CommitCoordinationTask.java:103) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.call(CommitCoordinationTask.java:70) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:42) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:28) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80) at com.google.common.util.concurrent.DirectExecutorService.execute(DirectExecutorService.java:52) at com.google.common.util.concurrent.Futures.submit(Futures.java:192) at org.opendaylight.yangtools.util.concurrent.FluentFutures.submit(FluentFutures.java:136) at org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker.commit(SerializedDOMDataBroker.java:66) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.onModelContextUpdated(MdsalRestconfStreamRegistry.java:304) at org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService.registerSchemaContextListener(FixedDOMSchemaService.java:60) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:201) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ... 86 common frames omitted 08:15:29.371 [main] DEBUG org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry -- Failed to add default stream NETCONF org.opendaylight.mdsal.common.api.TransactionCommitFailedException: canCommit execution failed at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:42) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18) at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:82) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:37) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.canCommitBlocking(CommitCoordinationTask.java:103) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.call(CommitCoordinationTask.java:70) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:42) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:28) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80) at com.google.common.util.concurrent.DirectExecutorService.execute(DirectExecutorService.java:52) at com.google.common.util.concurrent.Futures.submit(Futures.java:192) at org.opendaylight.yangtools.util.concurrent.FluentFutures.submit(FluentFutures.java:136) at org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker.commit(SerializedDOMDataBroker.java:66) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.onModelContextUpdated(MdsalRestconfStreamRegistry.java:304) at org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService.registerSchemaContextListener(FixedDOMSchemaService.java:60) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:201) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ... 86 common frames omitted 08:15:29.371 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree$Node -- Registration RegImpl{closed=false, instance=org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry$1@64f42138} added 08:15:29.371 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree$Node -- Registration RegImpl{closed=false, instance=org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry$1@64f42138} added 08:15:29.371 [main] DEBUG org.opendaylight.restconf.server.spi.YangLibraryVersionResource -- Cannot find ietf-yang-library 08:15:29.372 [main] INFO org.opendaylight.restconf.server.RestconfTransportChannelListener -- Initialized with service class org.opendaylight.restconf.server.mdsal.MdsalRestconfServer 08:15:29.372 [main] INFO org.opendaylight.restconf.server.RestconfTransportChannelListener -- Initialized with base path: /rests, default encoding: JSON, default pretty print: false 08:15:29.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43faae34} unlocked 08:15:29.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43faae34} readied 08:15:29.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43faae34} 08:15:29.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43faae34} completed successfully 08:15:29.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.374 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Connecting device! 08:15:29.374 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:29.384 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND SETTINGS: ack=false settings={MAX_HEADER_LIST_SIZE=8192} 08:15:29.384 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPScheme$CleartextUpgradeHandler -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004]: upgraded to HTTP/2 08:15:29.384 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSessionBootstrap -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] resolved to HTTP/2 semantics 08:15:29.384 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Threadpools for [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] started 08:15:29.386 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:29.386 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:29.386 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:29.386 [/127.0.0.1:59004-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-34 allocated with snapshot Version[75a110d8] 08:15:29.386 [/127.0.0.1:59004-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-34 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:29.386 [/127.0.0.1:59004-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-34 : Closed 08:15:29.386 [/127.0.0.1:59004-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-1 allocated with snapshot Version[6cd3d9f9] 08:15:29.386 [/127.0.0.1:59004-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-1 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:29.386 [/127.0.0.1:59004-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-1 : Closed 08:15:29.386 [/127.0.0.1:59004-http-server-req-0] DEBUG org.opendaylight.restconf.server.api.AbstractServerRequest -- Request NettyServerRequest{uuid=8ee967bb-ce26-48c0-9481-027326aff050, parameters=QueryParameters({}), prettyPrint=org.opendaylight.restconf.api.query.PrettyPrintParam@1314033d} failed org.opendaylight.netconf.databind.RequestException: Request could not be completed because the relevant data model content does not exist at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:582) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:576) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132) at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004) at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:469) at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:119) at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1098) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy.readData(RestconfStrategy.java:576) at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy.getData(MdsalRestconfStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:115) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataGET(MdsalRestconfServer.java:186) at org.opendaylight.restconf.server.PendingDataGet.execute(PendingDataGet.java:52) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:29.389 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND SETTINGS: ack=false settings={HEADER_TABLE_SIZE=16384, ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=16777216, MAX_FRAME_SIZE=16384, MAX_HEADER_LIST_SIZE=393216} 08:15:29.389 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND SETTINGS: ack=true 08:15:29.389 [gnmi-it-group-0] DEBUG io.netty.channel.DefaultChannelPipeline -- Discarded inbound message {HEADER_TABLE_SIZE=16384, ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=16777216, MAX_FRAME_SIZE=16384, MAX_HEADER_LIST_SIZE=393216} that reached at the tail of the pipeline. Please check your pipeline configuration. 08:15:29.389 [gnmi-it-group-0] DEBUG io.netty.channel.DefaultChannelPipeline -- Discarded message pipeline : [HttpToHttp2ConnectionHandler#0, AAAShiroPrincipalService$1#0, ConcurrentRestconfSession#0, DefaultChannelPipeline$TailContext#0]. Channel : [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004]. 08:15:29.389 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=33488897 08:15:29.390 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=1 headers=DefaultHttp2Headers[:status: 409, content-type: application/yang-data+json, content-length: 242] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:29.391 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND DATA: streamId=1 padding=0 endStream=true length=242 bytes=7b0a2020226572726f7273223a207b0a20202020226572726f72223a205b0a2020202020207b0a2020202020202020226572726f722d746167223a2022646174... 08:15:29.392 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND SETTINGS: ack=true 08:15:29.393 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Adding gnmi device with ID gnmi-node-test on IP ADDRESS:PORT 127.0.0.1:41545 08:15:29.393 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending PUT request with { "network-topology:node" : [{ "node-id": "gnmi-node-test", "gnmi-topology:connection-parameters": { "host": "127.0.0.1", "port": 41545, "connection-type": "INSECURE" }, "extensions-parameters": { "gnmi-parameters": { "use-model-name-prefix": true } } }] } payload to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:29.394 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=3 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: PUT, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test, :scheme: http, accept: application/json, content-type: application/json, content-length: 379, user-agent: Java-http-client/21.0.9] padding=0 endStream=false 08:15:29.394 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND DATA: streamId=3 padding=0 endStream=true length=379 bytes=7b0a20202020226e6574776f726b2d746f706f6c6f67793a6e6f646522203a205b7b0a2020202020202020226e6f64652d6964223a2022676e6d692d6e6f6465... 08:15:29.394 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.AbstractBasicAuthHandler -- UNAUTHORIZED: request has no 'Basic' Authorization header 08:15:29.394 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=3 headers=DefaultHttp2Headers[:status: 401, www-authenticate: BASIC realm="application"] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:29.395 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND RST_STREAM: streamId=3 errorCode=5 08:15:29.396 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=5 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: PUT, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test, :scheme: http, accept: application/json, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, content-length: 379, user-agent: Java-http-client/21.0.9] padding=0 endStream=false 08:15:29.396 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND DATA: streamId=5 padding=0 endStream=true length=379 bytes=7b0a20202020226e6574776f726b2d746f706f6c6f67793a6e6f646522203a205b7b0a2020202020202020226e6f64652d6964223a2022676e6d692d6e6f6465... 08:15:29.396 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:29.396 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:29.396 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:29.396 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:29.396 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:29.396 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:29.396 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:29.396 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:29.396 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing PUT http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:29.396 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of PUT http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-2 allocated with snapshot Version[6cd3d9f9] 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-2 Exists: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-2 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-2 : Closed 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableMapEntryNodeBuilder -- Adding leaf ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology} implied by key (urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: CFG-3 allocated with snapshot Version[6cd3d9f9] 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: CFG-3 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology:ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[]}]}]}]} 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: CFG-3 Write: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]} 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: CFG-3 : Ready 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: CFG-3 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-38 is submitted for execution. 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-38: canCommit Started 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: CFG-3 can be committed 08:15:29.401 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-38: preCommit Started 08:15:29.402 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-38: doCommit Started 08:15:29.402 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[116d2321], subtreeVersion=Version[6cd3d9f9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[6cd3d9f9], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}}} to MaterializedContainerNode{version=Version[116d2321], subtreeVersion=Version[3dc3ca54], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[3dc3ca54], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[3dc3ca54], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[3dc3ca54], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=ValueNode{version=Version[3dc3ca54], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}}, (urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=SimpleContainerNode{version=Version[3dc3ca54], data=ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]}]}}}, untouched=[ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}}} 08:15:29.402 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreTreeChangePublisher -- Enqueueing candidates [DefaultDataTreeCandidate{rootPath=/(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], rootNode=DataTreeCandidateNode{modificationType=WRITE, dataAfter=mapEntryNode (urn:TBD:params:xml:ns:yang:network-topology@2013-10-21)node = { leafNode node-id = "gnmi-node-test" containerNode (urn:opendaylight:gnmi:topology@2021-03-16)connection-parameters = { choiceNode security-choice = { leafNode connection-type = "INSECURE" } leafNode host = "127.0.0.1" leafNode port = 41545 } containerNode (urn:opendaylight:gnmi:topology@2021-03-16)extensions-parameters = { containerNode gnmi-parameters = { leafNode use-model-name-prefix = true } } }}}] for registration RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} 08:15:29.402 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.yangtools.util.concurrent.AbstractBatchingExecutor -- DataTreeChangeListenerQueueMgr + dsName: Submitting DispatcherTask for worker RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} 08:15:29.402 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.yangtools.util.concurrent.AbstractBatchingExecutor -- DataTreeChangeListenerQueueMgr + dsName: Invoking worker RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} with tasks: [DefaultDataTreeCandidate{rootPath=/(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], rootNode=DataTreeCandidateNode{modificationType=WRITE, dataAfter=mapEntryNode (urn:TBD:params:xml:ns:yang:network-topology@2013-10-21)node = { leafNode node-id = "gnmi-node-test" containerNode (urn:opendaylight:gnmi:topology@2021-03-16)connection-parameters = { choiceNode security-choice = { leafNode connection-type = "INSECURE" } leafNode host = "127.0.0.1" leafNode port = 41545 } containerNode (urn:opendaylight:gnmi:topology@2021-03-16)extensions-parameters = { containerNode gnmi-parameters = { leafNode use-model-name-prefix = true } } }}}] 08:15:29.402 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Data tree change on gNMI topology triggered 08:15:29.402 [/127.0.0.1:59004-http-server-req-1] INFO org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Received change in gNMI node connection configuration. Node ID: Uri{value=gnmi-node-test} 08:15:29.402 [/127.0.0.1:59004-http-server-req-1] WARN org.opendaylight.gnmi.southbound.device.connection.DeviceConnectionManager -- Node Uri{value=gnmi-node-test} is not registered, not deleting 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-35 allocated with snapshot Version[75a110d8] 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-35 Delete: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-35 : Ready 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-35 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-39 is submitted for execution. 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-39: canCommit Started 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-35 can be committed 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-39: preCommit Started 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-39: doCommit Started 08:15:29.403 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[75a110d8], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[75a110d8], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[75a110d8], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[75a110d8], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.422 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.AbstractDOMStoreTreeChangePublisher -- Skipping unmodified candidate InMemoryDataTreeCandidate{rootPath=/, rootNode=DataTreeCandidateNode{modificationType=UNMODIFIED, oldMeta=MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[75a110d8], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[75a110d8], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}}, newMeta=MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[75a110d8], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[75a110d8], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}}}} 08:15:29.440 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-39: doCommit completed 08:15:29.441 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.gnmi.southbound.device.session.security.KeystoreGnmiSecurityProvider -- Creating Security with insecure connection 08:15:29.443 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Registering callback on node gnmi-node-test connectivity status change READY 08:15:29.443 [/127.0.0.1:59004-http-server-req-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Starting listening on gRPC channel state change for node Uri{value=gnmi-node-test} 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Channel state of node gnmi-node-test changed from UNKNOWN to IDLE. Updating operational datastore... 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-36 allocated with snapshot Version[75a110d8] 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-36 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=IDLE}]}]} 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-36 : Ready 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-36 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-40 is submitted for execution. 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-40: canCommit Started 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-36 can be committed 08:15:29.444 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-40: preCommit Started 08:15:29.445 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-40: doCommit Started 08:15:29.445 [nioEventLoopGroup-62-1] WARN io.netty.bootstrap.ServerBootstrap -- Unknown channel option 'SO_BACKLOG' for channel '[id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846]' 08:15:29.445 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[75a110d8], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[75a110d8], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[3fcbdf1d], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[3fcbdf1d], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[3fcbdf1d], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[3fcbdf1d], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=SimpleContainerNode{version=Version[3fcbdf1d], data=ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=IDLE}]}]}]}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.467 [grpc-default-executor-3] DEBUG io.netty.handler.ssl.util.InsecureTrustManagerFactory -- Accepting a server certificate: CN=localhost, OU=Test, O=Test, L=Test, ST=Test, C=NZ 08:15:29.479 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-40: doCommit completed 08:15:29.479 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Current session status IDLE 08:15:29.479 [grpc-default-executor-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Channel state of node gnmi-node-test changed from IDLE to CONNECTING. Updating operational datastore... 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-37 allocated with snapshot Version[3fcbdf1d] 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-37 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}]}]} 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-37 : Ready 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-37 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-41 is submitted for execution. 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-41: canCommit Started 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-37 can be committed 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-41: preCommit Started 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-41: doCommit Started 08:15:29.480 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[3fcbdf1d], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[3fcbdf1d], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[3fcbdf1d], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[3fcbdf1d], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=SimpleContainerNode{version=Version[3fcbdf1d], data=ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=IDLE}]}]}]}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[2fbc1298], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[2fbc1298], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[2fbc1298], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.501 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-41: doCommit completed 08:15:29.501 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Current session status CONNECTING 08:15:29.490 [/127.0.0.1:59004-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-38: doCommit completed 08:15:29.494 [grpc-nio-worker-ELG-64-2] DEBUG io.netty.handler.ssl.SslHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] HANDSHAKEN: protocol:TLSv1.3 cipher suite:TLS_AES_128_GCM_SHA256 08:15:29.502 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND SETTINGS: ack=false settings={ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192} 08:15:29.502 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=983041 08:15:29.502 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=5 headers=DefaultHttp2Headers[:status: 201, content-length: 0] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:29.505 [nioEventLoopGroup-63-1] DEBUG io.netty.handler.ssl.SslHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] HANDSHAKEN: protocol:TLSv1.3 cipher suite:TLS_AES_128_GCM_SHA256 08:15:29.505 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND SETTINGS: ack=false settings={MAX_CONCURRENT_STREAMS=2147483647, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192} 08:15:29.505 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=983041 08:15:29.506 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND SETTINGS: ack=false settings={ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192} 08:15:29.506 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND SETTINGS: ack=true 08:15:29.506 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND SETTINGS: ack=false settings={MAX_CONCURRENT_STREAMS=2147483647, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192} 08:15:29.506 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND SETTINGS: ack=true 08:15:29.506 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=983041 08:15:29.506 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=983041 08:15:29.506 [grpc-default-executor-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Channel state of node gnmi-node-test changed from CONNECTING to READY. Updating operational datastore... 08:15:29.506 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Triggering registered callback on node gnmi-node-test connectivity status change READY 08:15:29.506 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND SETTINGS: ack=true 08:15:29.506 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND SETTINGS: ack=true 08:15:29.507 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Current session status READY 08:15:29.511 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND HEADERS: streamId=3 headers=GrpcHttp2OutboundHeaders[:authority: 127.0.0.1:41545, :path: /gnmi.gNMI/Capabilities, :method: POST, :scheme: https, content-type: application/grpc, te: trailers, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:29.512 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND DATA: streamId=3 padding=0 endStream=false length=5 bytes=0000000000 08:15:29.512 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3903b534} unlocked 08:15:29.512 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3903b534} readied 08:15:29.512 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3903b534} 08:15:29.512 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3903b534} completed successfully 08:15:29.512 [mdsal-subscription-counters10] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.512 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND HEADERS: streamId=3 headers=GrpcHttp2RequestHeaders[:path: /gnmi.gNMI/Capabilities, :authority: 127.0.0.1:41545, :method: POST, :scheme: https, te: trailers, content-type: application/grpc, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:29.513 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND DATA: streamId=3 padding=0 endStream=false length=5 bytes=0000000000 08:15:29.513 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND PING: ack=false bytes=1234 08:15:29.513 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND PING: ack=false bytes=1234 08:15:29.513 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND PING: ack=true bytes=1234 08:15:29.514 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND DATA: streamId=3 padding=0 endStream=true length=0 bytes= 08:15:29.525 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND PING: ack=true bytes=1234 08:15:29.525 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND DATA: streamId=3 padding=0 endStream=true length=0 bytes= 08:15:29.526 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- capabilities request: { "extension": [] } 08:15:29.526 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiCapabilitiesService -- Received capabilities request 08:15:29.527 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- capabilities response: { "supportedModels": [{ "name": "gnmi-test-aug", "organization": "UNKNOWN-ORGANIZATION", "version": "1.0.0" }, { "name": "gnmi-test-model", "organization": "UNKNOWN-ORGANIZATION", "version": "1.0.0" }, { "name": "iana-if-type", "organization": "IANA", "version": "2023-01-26" }, { "name": "ietf-interfaces", "organization": "IETF NETMOD (Network Modeling) Working Group", "version": "2018-02-20" }, { "name": "ietf-yang-types", "organization": "IETF NETMOD (NETCONF Data Modeling Language) Working Group", "version": "2013-07-15" }, { "name": "openconfig-aaa", "organization": "OpenConfig working group", "version": "0.5.0" }, { "name": "openconfig-aaa-types", "organization": "OpenConfig working group", "version": "0.4.1" }, { "name": "openconfig-alarm-types", "organization": "OpenConfig working group", "version": "0.2.1" }, { "name": "openconfig-alarms", "organization": "OpenConfig working group", "version": "0.3.2" }, { "name": "openconfig-extensions", "organization": "OpenConfig working group", "version": "2020-06-16" }, { "name": "openconfig-if-aggregate", "organization": "OpenConfig working group", "version": "2.4.3" }, { "name": "openconfig-if-ethernet", "organization": "OpenConfig working group", "version": "2.11.0" }, { "name": "openconfig-if-types", "organization": "OpenConfig working group", "version": "0.2.1" }, { "name": "openconfig-inet-types", "organization": "OpenConfig working group", "version": "0.4.0" }, { "name": "openconfig-interfaces", "organization": "OpenConfig working group", "version": "2.5.0" }, { "name": "openconfig-license", "organization": "OpenConfig working group", "version": "0.2.0" }, { "name": "openconfig-messages", "organization": "OpenConfig working group", "version": "0.0.1" }, { "name": "openconfig-openflow", "organization": "OpenConfig working group", "version": "0.1.2" }, { "name": "openconfig-openflow-types", "organization": "OpenConfig working group", "version": "0.1.3" }, { "name": "openconfig-platform", "organization": "OpenConfig working group", "version": "0.13.0" }, { "name": "openconfig-platform-types", "organization": "OpenConfig working group", "version": "1.1.0" }, { "name": "openconfig-procmon", "organization": "OpenConfig working group", "version": "0.4.0" }, { "name": "openconfig-system", "organization": "OpenConfig working group", "version": "0.10.0" }, { "name": "openconfig-system-logging", "organization": "OpenConfig working group", "version": "0.3.1" }, { "name": "openconfig-system-terminal", "organization": "OpenConfig working group", "version": "0.3.1" }, { "name": "openconfig-types", "organization": "OpenConfig working group", "version": "0.6.0" }, { "name": "openconfig-vlan", "organization": "OpenConfig working group", "version": "3.2.0" }, { "name": "openconfig-vlan-types", "organization": "OpenConfig working group", "version": "3.1.1" }, { "name": "openconfig-yang-types", "organization": "OpenConfig working group", "version": "0.3.0" }], "supportedEncodings": ["JSON", "JSON_IETF"], "gNMIVersion": "0.7.0", "extension": [] } 08:15:29.528 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND HEADERS: streamId=3 headers=GrpcHttp2OutboundHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:29.528 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND DATA: streamId=3 padding=0 endStream=false length=1692 bytes=00000006970a2c0a0d676e6d692d746573742d6175671214554e4b4e4f574e2d4f5247414e495a4154494f4e1a05312e302e300a2e0a0f676e6d692d74657374... 08:15:29.528 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND HEADERS: streamId=3 headers=GrpcHttp2OutboundHeaders[grpc-status: 0] padding=0 endStream=true 08:15:29.529 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=3 headers=GrpcHttp2ResponseHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:29.529 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND DATA: streamId=3 padding=0 endStream=false length=1692 bytes=00000006970a2c0a0d676e6d692d746573742d6175671214554e4b4e4f574e2d4f5247414e495a4154494f4e1a05312e302e300a2e0a0f676e6d692d74657374... 08:15:29.529 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND PING: ack=false bytes=1234 08:15:29.529 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=3 headers=GrpcHttp2ResponseHeaders[grpc-status: 0] padding=0 endStream=true 08:15:29.530 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND PING: ack=false bytes=1234 08:15:29.530 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND PING: ack=true bytes=1234 08:15:29.530 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND PING: ack=true bytes=1234 08:15:29.530 [pool-110-thread-3] DEBUG org.opendaylight.gnmi.southbound.device.connection.DeviceConnectionManager -- Received gNMI Capabiltiies response from Uri{value=gnmi-node-test} : supported_models { name: "gnmi-test-aug" organization: "UNKNOWN-ORGANIZATION" version: "1.0.0" } supported_models { name: "gnmi-test-model" organization: "UNKNOWN-ORGANIZATION" version: "1.0.0" } supported_models { name: "iana-if-type" organization: "IANA" version: "2023-01-26" } supported_models { name: "ietf-interfaces" organization: "IETF NETMOD (Network Modeling) Working Group" version: "2018-02-20" } supported_models { name: "ietf-yang-types" organization: "IETF NETMOD (NETCONF Data Modeling Language) Working Group" version: "2013-07-15" } supported_models { name: "openconfig-aaa" organization: "OpenConfig working group" version: "0.5.0" } supported_models { name: "openconfig-aaa-types" organization: "OpenConfig working group" version: "0.4.1" } supported_models { name: "openconfig-alarm-types" organization: "OpenConfig working group" version: "0.2.1" } supported_models { name: "openconfig-alarms" organization: "OpenConfig working group" version: "0.3.2" } supported_models { name: "openconfig-extensions" organization: "OpenConfig working group" version: "2020-06-16" } supported_models { name: "openconfig-if-aggregate" organization: "OpenConfig working group" version: "2.4.3" } supported_models { name: "openconfig-if-ethernet" organization: "OpenConfig working group" version: "2.11.0" } supported_models { name: "openconfig-if-types" organization: "OpenConfig working group" version: "0.2.1" } supported_models { name: "openconfig-inet-types" organization: "OpenConfig working group" version: "0.4.0" } supported_models { name: "openconfig-interfaces" organization: "OpenConfig working group" version: "2.5.0" } supported_models { name: "openconfig-license" organization: "OpenConfig working group" version: "0.2.0" } supported_models { name: "openconfig-messages" organization: "OpenConfig working group" version: "0.0.1" } supported_models { name: "openconfig-openflow" organization: "OpenConfig working group" version: "0.1.2" } supported_models { name: "openconfig-openflow-types" organization: "OpenConfig working group" version: "0.1.3" } supported_models { name: "openconfig-platform" organization: "OpenConfig working group" version: "0.13.0" } supported_models { name: "openconfig-platform-types" organization: "OpenConfig working group" version: "1.1.0" } supported_models { name: "openconfig-procmon" organization: "OpenConfig working group" version: "0.4.0" } supported_models { name: "openconfig-system" organization: "OpenConfig working group" version: "0.10.0" } supported_models { name: "openconfig-system-logging" organization: "OpenConfig working group" version: "0.3.1" } supported_models { name: "openconfig-system-terminal" organization: "OpenConfig working group" version: "0.3.1" } supported_models { name: "openconfig-types" organization: "OpenConfig working group" version: "0.6.0" } supported_models { name: "openconfig-vlan" organization: "OpenConfig working group" version: "3.2.0" } supported_models { name: "openconfig-vlan-types" organization: "OpenConfig working group" version: "3.1.1" } supported_models { name: "openconfig-yang-types" organization: "OpenConfig working group" version: "0.3.0" } supported_encodings: JSON supported_encodings: JSON_IETF gNMI_version: "0.7.0" 08:15:29.531 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-38 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-38 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-38 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-39 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-39 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-39 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-40 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-40 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-40 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-41 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-41 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-41 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-42 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-42 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-42 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-43 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-43 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-43 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-44 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-44 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-44 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-45 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-45 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-45 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-46 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-46 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-46 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-47 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-47 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-47 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-48 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-48 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-48 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-49 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-49 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-49 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-50 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-50 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-50 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-51 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-51 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-51 : Closed 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-52 allocated with snapshot Version[2fbc1298] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-52 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}] 08:15:29.532 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-52 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-53 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-53 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-53 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-54 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-54 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-54 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-55 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-55 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-55 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-56 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-56 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-56 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-57 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-57 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-57 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-58 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-58 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-58 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-59 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-59 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-59 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-60 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-60 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-60 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-61 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-61 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-61 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-62 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-62 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-62 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-63 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-63 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-63 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-64 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-64 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-64 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-65 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-65 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-65 : Closed 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-66 allocated with snapshot Version[2fbc1298] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-66 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}] 08:15:29.533 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-66 : Closed 08:15:29.543 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@63d76b91} unlocked 08:15:29.543 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@63d76b91} readied 08:15:29.543 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@63d76b91} 08:15:29.543 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@63d76b91} completed successfully 08:15:29.543 [mdsal-subscription-counters3] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.621 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-67 allocated with snapshot Version[2fbc1298] 08:15:29.621 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-67 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models 08:15:29.621 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-67 : Closed 08:15:29.622 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-68 allocated with snapshot Version[2fbc1298] 08:15:29.622 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-68 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models 08:15:29.622 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-68 : Closed 08:15:29.716 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f9c7751} unlocked 08:15:29.716 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f9c7751} readied 08:15:29.716 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f9c7751} 08:15:29.716 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f9c7751} completed successfully 08:15:29.716 [mdsal-subscription-counters12] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase SOURCE_PRE_LINKAGE 08:15:29.718 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_PRE_LINKAGE started 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase SOURCE_PRE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_PRE_LINKAGE finished 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase SOURCE_LINKAGE 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_LINKAGE started 08:15:29.720 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-platform-types} found a pre-existing match: SourceIdentifier [openconfig-platform-types@2021-01-18]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-platform-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-platform} matched added key SourceIdentifier [openconfig-platform@2021-01-18] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-openflow-types} found a pre-existing match: SourceIdentifier [openconfig-openflow-types@2020-06-30]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-openflow-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} found a pre-existing match: SourceIdentifier [openconfig-yang-types@2021-03-02]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-yang-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} found a pre-existing match: SourceIdentifier [openconfig-types@2019-04-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} found a pre-existing match: SourceIdentifier [openconfig-yang-types@2021-03-02]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-yang-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=submodule} criterion LatestRevisionModule{moduleName=openconfig-aaa-radius} matched added key SourceIdentifier [openconfig-aaa-radius@2020-07-30] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarm-types} matched added key SourceIdentifier [openconfig-alarm-types@2018-11-21] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarm-types} matched added key SourceIdentifier [openconfig-alarm-types@2018-11-21] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} found a pre-existing match: SourceIdentifier [iana-if-type@2023-01-26]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=iana-if-type}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} found a pre-existing match: SourceIdentifier [openconfig-types@2019-04-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=submodule} criterion LatestRevisionModule{moduleName=openconfig-aaa-tacacs} matched added key SourceIdentifier [openconfig-aaa-tacacs@2020-07-30] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-yang-types} found a pre-existing match: SourceIdentifier [ietf-yang-types@2013-07-15]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=ietf-yang-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-interfaces} matched added key SourceIdentifier [ietf-interfaces@2018-02-20] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} matched added key SourceIdentifier [openconfig-inet-types@2021-01-07] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} found a pre-existing match: SourceIdentifier [openconfig-types@2019-04-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} found a pre-existing match: SourceIdentifier [openconfig-yang-types@2021-03-02]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-yang-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} found a pre-existing match: SourceIdentifier [iana-if-type@2023-01-26]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=iana-if-type}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} found a pre-existing match: SourceIdentifier [openconfig-yang-types@2021-03-02]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-yang-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-ethernet} matched added key SourceIdentifier [openconfig-if-ethernet@2021-06-09] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-vlan-types} matched added key SourceIdentifier [openconfig-vlan-types@2020-06-30] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=gnmi-test-model} found a pre-existing match: SourceIdentifier [gnmi-test-model]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=gnmi-test-model}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-interfaces} found a pre-existing match: SourceIdentifier [ietf-interfaces@2018-02-20]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=ietf-interfaces}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} found a pre-existing match: SourceIdentifier [openconfig-yang-types@2021-03-02]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-yang-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} found a pre-existing match: SourceIdentifier [openconfig-types@2019-04-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-types}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} matched added key SourceIdentifier [openconfig-interfaces@2021-04-06] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} matched added key SourceIdentifier [openconfig-interfaces@2021-04-06] 08:15:29.721 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} matched added key SourceIdentifier [openconfig-interfaces@2021-04-06] 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} found a pre-existing match: SourceIdentifier [openconfig-interfaces@2021-04-06]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-interfaces}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-ethernet} found a pre-existing match: SourceIdentifier [openconfig-if-ethernet@2021-06-09]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-if-ethernet}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} found a pre-existing match: SourceIdentifier [iana-if-type@2023-01-26]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=iana-if-type}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-types} found a pre-existing match: SourceIdentifier [openconfig-if-types@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-if-types}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-aggregate} matched added key SourceIdentifier [openconfig-if-aggregate@2020-05-01] 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:29.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4ece7688} unlocked 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-logging} found a pre-existing match: SourceIdentifier [openconfig-system-logging@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-system-logging}, refCount=0} 08:15:29.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4ece7688} readied 08:15:29.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4ece7688} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:29.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4ece7688} completed successfully 08:15:29.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} found a pre-existing match: SourceIdentifier [openconfig-yang-types@2021-03-02]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-yang-types}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} found a pre-existing match: SourceIdentifier [openconfig-types@2019-04-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-types}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa} found a pre-existing match: SourceIdentifier [openconfig-aaa@2020-07-30]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-aaa}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-logging} found a pre-existing match: SourceIdentifier [openconfig-system-logging@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-system-logging}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-terminal} found a pre-existing match: SourceIdentifier [openconfig-system-terminal@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-system-terminal}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-procmon} found a pre-existing match: SourceIdentifier [openconfig-procmon@2019-03-15]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-procmon}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarms} found a pre-existing match: SourceIdentifier [openconfig-alarms@2019-07-09]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-alarms}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-messages} found a pre-existing match: SourceIdentifier [openconfig-messages@2018-08-13]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-messages}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-license} found a pre-existing match: SourceIdentifier [openconfig-license@2020-04-22]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-license}, refCount=0} 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system} matched added key SourceIdentifier [openconfig-system@2020-04-13] 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase SOURCE_LINKAGE 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_LINKAGE finished 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase STATEMENT_DEFINITION 08:15:29.722 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase STATEMENT_DEFINITION 08:15:29.723 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase STATEMENT_DEFINITION started 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase STATEMENT_DEFINITION 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase STATEMENT_DEFINITION 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase STATEMENT_DEFINITION 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase STATEMENT_DEFINITION 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase STATEMENT_DEFINITION 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase STATEMENT_DEFINITION 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase STATEMENT_DEFINITION 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase STATEMENT_DEFINITION 08:15:29.727 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase STATEMENT_DEFINITION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase STATEMENT_DEFINITION finished 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase FULL_DECLARATION 08:15:29.728 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase FULL_DECLARATION 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase FULL_DECLARATION started 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.729 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data] got key (test:model)test-data 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.730 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.731 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.732 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.733 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.734 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.735 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.736 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.737 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data] got key (test:model)test-data 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data, (test:model)nested-container] got key (test:model)test-data 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.738 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@348e0d72 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@10619ecb 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@443e6814 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5e78ab53 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@1a59d873 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@6d29a35 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@311b3c33 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2aa22b70 08:15:29.739 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7e6ce417 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data, (test:model)nested-container] got key (test:model)nested-container 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase FULL_DECLARATION 08:15:29.740 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase FULL_DECLARATION 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase FULL_DECLARATION finished 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase EFFECTIVE_MODEL started 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase EFFECTIVE_MODEL 08:15:29.741 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase EFFECTIVE_MODEL 08:15:29.742 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase EFFECTIVE_MODEL 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase EFFECTIVE_MODEL 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase EFFECTIVE_MODEL 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface materialized 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces materialized 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface materialized 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface materialized 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)config from (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)config materialized 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)state from (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)state materialized 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:29.743 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase EFFECTIVE_MODEL 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase EFFECTIVE_MODEL 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)components 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/platform?revision=2021-01-18)component from (http://openconfig.net/yang/platform?revision=2021-01-18)component 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/platform?revision=2021-01-18)component materialized 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)component 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/platform?revision=2021-01-18)state from (http://openconfig.net/yang/platform?revision=2021-01-18)state 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/platform?revision=2021-01-18)state materialized 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)state 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase EFFECTIVE_MODEL 08:15:29.744 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config from (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config materialized 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state from (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state materialized 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/system?revision=2020-04-13)system] got key (http://openconfig.net/yang/system?revision=2020-04-13)system 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase EFFECTIVE_MODEL 08:15:29.745 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase EFFECTIVE_MODEL finished 08:15:29.746 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:29.746 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=1} 08:15:29.746 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=1} 08:15:29.746 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=1} 08:15:29.746 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=1} 08:15:29.746 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=1} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=6} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=6} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=6} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=1} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=1} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=1} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=5} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=5} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=5} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=4} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=4} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=4} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=3} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=3} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=3} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=2} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=2} 08:15:29.747 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=2} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)stat-interval-state, refCount=SWEEPING} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-max-time, refCount=SWEEPING} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=SWEEPING} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=SWEEPING} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=SWEEPING} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 7 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg-min-max-instant-stats-pct, refCount=SWEEPING} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=2} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=1} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable, refCount=1} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:29.748 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=SWEEPING} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=SWEEPING} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=SWEEPING} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)instant, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)avg, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)interval, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min-time, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max-time, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)instant, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)avg, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)min, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)max, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)interval, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)min-time, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)max-time, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)available, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)utilized, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.749 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)memory} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)temperature} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)equipment-failure, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)equipment-mismatch, refCount=1} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)chassis} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)port} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)power-supply} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fan} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fabric} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)storage} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)cpu} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)integrated-circuit} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)backplane} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-module} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)instant, refCount=SWEEPING} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)avg, refCount=SWEEPING} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min, refCount=SWEEPING} 08:15:29.750 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)property, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)properties, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)subcomponent, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)subcomponents, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)temperature, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)available, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)utilized, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)memory, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)chassis, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)port, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)power-supply, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fan, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fabric, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)storage, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)cpu, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)integrated-circuit, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)backplane, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-module, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 7 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)component, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)components, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=SWEEPING} 08:15:29.751 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)alarms-top, refCount=SWEEPING} 08:15:29.752 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(test:aug)name]} 08:15:29.752 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)name, refCount=1} 08:15:29.752 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)name, refCount=1} 08:15:29.752 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)type, refCount=1} 08:15:29.752 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)mtu, refCount=1} 08:15:29.752 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:model)augmented-data, refCount=1} 08:15:29.752 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)interface, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=2} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=2} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=2} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=2} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=2} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=2} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=2} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=2} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id]} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=1} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=0} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id} 08:15:29.753 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=0} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=2} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=2} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=1} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=1} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=1} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=0} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=2} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=2} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=2} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=2} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=1} 08:15:29.754 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=2} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:29.755 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)index]} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)name]} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)index]} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config} 08:15:29.756 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:29.757 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.757 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.757 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.757 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.757 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=1} 08:15:29.757 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=1} 08:15:29.758 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=1} 08:15:29.759 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-control-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-pause-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-oversize-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-undersize-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-jabber-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-fragment-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-8021q-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-crc-errors, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-block-errors, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-carrier-errors, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-interrupted-tx, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-late-collision, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-errors-rx, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-single-collision, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-symbol-error, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-maxsize-exceeded, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-control-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-pause-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-8021q-frames, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-errors-tx, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:29.760 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface-ref, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)base-interface-ref-state, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)hold-time, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=SWEEPING} 08:15:29.761 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, refCount=SWEEPING} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=2} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=2} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=2} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=2} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=2} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=2} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=2} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=2} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)address]} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)hostname]} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address} 08:15:29.762 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=2} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)key-id]} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)address]} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)version} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)version} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved, refCount=1} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=8} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=8} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=8} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=8} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=8} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=8} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=8} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=7} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=7} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=7} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=7} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=7} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=7} 08:15:29.763 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=7} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=6} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=6} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=6} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=6} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=6} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=6} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=6} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=5} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=5} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=5} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=5} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=5} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=5} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=5} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=4} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=4} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=4} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=4} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=4} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=4} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=4} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=3} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=3} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=3} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=3} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=3} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=3} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=3} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=SWEEPING} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=SWEEPING} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=SWEEPING} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=SWEEPING} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=2} 08:15:29.764 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=2} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)search} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)search} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=4} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=4} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=4} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=2} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=2} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=3} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=3} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=3} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=2} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:29.765 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=2} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=2} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity]} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=2} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=2} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=2} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity]} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)host]} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=1} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity], refCount=3} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=4} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=4} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=4} 08:15:29.766 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=4} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)host], refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity], refCount=3} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=4} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=4} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=4} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=4} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=2} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=2} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=2} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=2} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=2} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=2} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=2} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=2} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)username]} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=1} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.767 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=2} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type]} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=2} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=2} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type]} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=2} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=2} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=2} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=2} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=2} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=1} 08:15:29.768 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=2} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)address]} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=1} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.769 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)name]} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type], refCount=3} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=3} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type], refCount=3} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=3} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)username], refCount=3} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=3} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)name], refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)address], refCount=3} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=3} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=4} 08:15:29.770 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=4} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=10} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=10} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=10} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=10} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=5} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=5} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=5} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=5} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=5} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=5} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=7} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=0} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)index]} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)index} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)total} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)user} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=0} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid], refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)alarms, refCount=SWEEPING} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)alarm, refCount=SWEEPING} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/alarms?revision=2019-07-09)id], refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=SWEEPING} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)config, refCount=1} 08:15:29.771 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)config, refCount=SWEEPING} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 10 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)state, refCount=SWEEPING} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=2} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=2} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=2} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/messages?revision=2018-08-13)service]} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=0} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=0} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/messages?revision=2018-08-13)service], refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=2} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=2} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=2} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/license?revision=2020-04-22)license-id]} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)active} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)config, refCount=0} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)active} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)description} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired} 08:15:29.772 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/license?revision=2020-04-22)license-id], refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=1} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)message} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)total} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)user} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt} 08:15:29.773 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)counters} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=4} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=4} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id]} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=5} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=7} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=7} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=7} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=7} 08:15:29.774 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=7} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)radius, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)tacacs, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server-group, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server-groups, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)servers, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-user, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)user, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)users, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:29.775 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)events, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)events, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)aaa, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)selector, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)selectors, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)console, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-server, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-servers, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)logging, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=2} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=2} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=2} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)ssh-server, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)config, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)telnet-server, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)state, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)process, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)processes, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=SWEEPING} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=0} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity} 08:15:29.776 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)message} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)message, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)debug-service, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)debug-entries, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)messages, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)licenses, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)clock, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)host-entry, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)host-entries, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)server, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)servers, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)dns, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)server, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)servers, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-key, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-keys, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)memory, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)total, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)user, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)cpu, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)cpus, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:29.777 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 14 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)system, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)controller, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)controllers, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connection, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connections, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)agent, refCount=SWEEPING} 08:15:29.778 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)openflow, refCount=SWEEPING} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=1} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=2} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=2} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=2} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=1} 08:15:29.779 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=1} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)member, refCount=0} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-control-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-pause-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-oversize-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-undersize-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-jabber-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-fragment-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-8021q-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-crc-errors, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-block-errors, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-carrier-errors, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-interrupted-tx, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-late-collision, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-errors-rx, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-single-collision, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-symbol-error, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-maxsize-exceeded, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-control-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-pause-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-8021q-frames, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-errors-tx, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)counters, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, refCount=SWEEPING} 08:15:29.780 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)member, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)members, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged-list, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged-range, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-list, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-outer-list, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-range, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-outer-range, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-outer-range, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)match, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)ingress-mapping, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)egress-mapping, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:29.781 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)routed-vlan, refCount=SWEEPING} 08:15:29.782 [pool-110-thread-3] DEBUG org.opendaylight.gnmi.southbound.schema.impl.SchemaContextHolderImpl -- Schema context created [ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-aug}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-model}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}] 08:15:29.782 [pool-110-thread-3] INFO org.opendaylight.gnmi.southbound.mountpoint.GnmiMountPointRegistrator -- Mount point for node gnmi-node-test created: {closed=false, instance=org.opendaylight.mdsal.dom.spi.SimpleDOMMountPoint@4becdda0} 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-69 allocated with snapshot Version[2fbc1298] 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-69 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}]}]} 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-69 : Ready 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-69 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-73 is submitted for execution. 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-73: canCommit Started 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-69 can be committed 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-73: preCommit Started 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-73: doCommit Started 08:15:29.783 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[2fbc1298], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[2fbc1298], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[2fbc1298], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[2fbc1298], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[347668b2], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[347668b2], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[2fbc1298], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[347668b2], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.801 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-73: doCommit completed 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-70 allocated with snapshot Version[347668b2] 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-70 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}]}]} 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-70 : Ready 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-70 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-74 is submitted for execution. 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-74: canCommit Started 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-70 can be committed 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-74: preCommit Started 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-74: doCommit Started 08:15:29.802 [pool-110-thread-3] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[347668b2], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[347668b2], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[347668b2], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[2fbc1298], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[347668b2], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[6b1fb6ae], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[6b1fb6ae], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[347668b2], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:29.820 [pool-110-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-74: doCommit completed 08:15:29.820 [pool-110-thread-4] INFO org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Connection with node Uri{value=gnmi-node-test} established successfully 08:15:29.884 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6ac0c070} unlocked 08:15:29.884 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6ac0c070} readied 08:15:29.884 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6ac0c070} 08:15:29.884 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6ac0c070} completed successfully 08:15:29.884 [mdsal-subscription-counters5] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.188 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3213b55a} unlocked 08:15:30.188 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3213b55a} readied 08:15:30.188 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3213b55a} 08:15:30.188 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3213b55a} completed successfully 08:15:30.188 [mdsal-subscription-counters7] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7ef97ab6} unlocked 08:15:30.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7ef97ab6} readied 08:15:30.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7ef97ab6} 08:15:30.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7ef97ab6} completed successfully 08:15:30.362 [mdsal-subscription-counters14] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43be39d7} unlocked 08:15:30.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43be39d7} readied 08:15:30.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43be39d7} 08:15:30.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43be39d7} completed successfully 08:15:30.403 [mdsal-subscription-counters9] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1f170b64} unlocked 08:15:30.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1f170b64} readied 08:15:30.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1f170b64} 08:15:30.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1ca51c20} unlocked 08:15:30.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1ca51c20} readied 08:15:30.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1ca51c20} 08:15:30.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1f170b64} completed successfully 08:15:30.403 [mdsal-subscription-counters16] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1ca51c20} completed successfully 08:15:30.403 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@399b722b} unlocked 08:15:30.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@399b722b} readied 08:15:30.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@399b722b} 08:15:30.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@399b722b} completed successfully 08:15:30.483 [mdsal-subscription-counters19] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f06e022} unlocked 08:15:30.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f06e022} readied 08:15:30.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f06e022} 08:15:30.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f06e022} completed successfully 08:15:30.590 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@725a59be} unlocked 08:15:30.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@725a59be} readied 08:15:30.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@725a59be} 08:15:30.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@725a59be} completed successfully 08:15:30.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:30.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@462a1fc9} unlocked 08:15:30.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@462a1fc9} readied 08:15:30.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@462a1fc9} 08:15:30.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@462a1fc9} completed successfully 08:15:30.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2442270d} unlocked 08:15:31.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2442270d} readied 08:15:31.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2442270d} 08:15:31.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2442270d} completed successfully 08:15:31.047 [mdsal-subscription-counters6] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.130 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cddc457} unlocked 08:15:31.130 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cddc457} readied 08:15:31.130 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cddc457} 08:15:31.130 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cddc457} completed successfully 08:15:31.130 [mdsal-subscription-counters0] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1c6afddb} unlocked 08:15:31.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1c6afddb} readied 08:15:31.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1c6afddb} 08:15:31.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1c6afddb} completed successfully 08:15:31.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@a287dc8} unlocked 08:15:31.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@a287dc8} readied 08:15:31.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@a287dc8} 08:15:31.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@a287dc8} completed successfully 08:15:31.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3fe759cf} unlocked 08:15:31.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3fe759cf} readied 08:15:31.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3fe759cf} 08:15:31.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3fe759cf} completed successfully 08:15:31.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.284 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6dcadd18} unlocked 08:15:31.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6dcadd18} readied 08:15:31.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6dcadd18} 08:15:31.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6dcadd18} completed successfully 08:15:31.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.319 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2605615f} unlocked 08:15:31.319 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2605615f} readied 08:15:31.319 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2605615f} 08:15:31.319 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2605615f} completed successfully 08:15:31.319 [mdsal-subscription-counters8] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6f0a8e6a} unlocked 08:15:31.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6f0a8e6a} readied 08:15:31.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6f0a8e6a} 08:15:31.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6f0a8e6a} completed successfully 08:15:31.372 [mdsal-subscription-counters21] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.504 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/gnmi-topology:node-state/node-status 08:15:31.506 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=7 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/gnmi-topology:node-state/node-status, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:31.506 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:31.506 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:31.506 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:31.506 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:31.506 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:31.506 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:31.506 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:31.506 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:31.506 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/gnmi-topology:node-state/node-status 08:15:31.507 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/gnmi-topology:node-state/node-status 08:15:31.507 [/127.0.0.1:59004-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-71 allocated with snapshot Version[6b1fb6ae] 08:15:31.507 [/127.0.0.1:59004-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-71 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]/(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state/node-status 08:15:31.507 [/127.0.0.1:59004-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-71 : Closed 08:15:31.507 [/127.0.0.1:59004-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-4 allocated with snapshot Version[3dc3ca54] 08:15:31.507 [/127.0.0.1:59004-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-4 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]/(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state/node-status 08:15:31.507 [/127.0.0.1:59004-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-4 : Closed 08:15:31.508 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=7 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 37] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:31.508 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND DATA: streamId=7 padding=0 endStream=true length=37 bytes=7b22676e6d692d746f706f6c6f67793a6e6f64652d737461747573223a225245414459227d 08:15:31.509 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Check node gnmi-node-test connection status response: READY 08:15:31.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6a268b65} unlocked 08:15:31.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6a268b65} readied 08:15:31.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6a268b65} 08:15:31.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6a268b65} completed successfully 08:15:31.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@51bfb924} unlocked 08:15:31.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@51bfb924} readied 08:15:31.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@51bfb924} 08:15:31.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@51bfb924} completed successfully 08:15:31.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.717 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5c3d35d5} unlocked 08:15:31.717 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5c3d35d5} readied 08:15:31.717 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5c3d35d5} 08:15:31.717 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5c3d35d5} completed successfully 08:15:31.717 [mdsal-subscription-counters12] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@677f99e6} unlocked 08:15:31.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@677f99e6} readied 08:15:31.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@677f99e6} 08:15:31.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@677f99e6} completed successfully 08:15:31.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:31.885 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@395c4bcf} unlocked 08:15:31.885 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@395c4bcf} readied 08:15:31.885 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@395c4bcf} 08:15:31.885 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@395c4bcf} completed successfully 08:15:31.885 [mdsal-subscription-counters5] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1506a359} unlocked 08:15:32.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1506a359} readied 08:15:32.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1506a359} 08:15:32.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1506a359} completed successfully 08:15:32.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2020afb1} unlocked 08:15:32.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2020afb1} readied 08:15:32.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2020afb1} 08:15:32.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2020afb1} completed successfully 08:15:32.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b0ba2fa} unlocked 08:15:32.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b0ba2fa} readied 08:15:32.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b0ba2fa} 08:15:32.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b0ba2fa} completed successfully 08:15:32.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2b1b72a2} unlocked 08:15:32.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2b1b72a2} readied 08:15:32.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2b1b72a2} 08:15:32.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2b1b72a2} completed successfully 08:15:32.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f91b290} unlocked 08:15:32.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f91b290} readied 08:15:32.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f91b290} 08:15:32.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2f91b290} completed successfully 08:15:32.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.484 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@77b5d} unlocked 08:15:32.484 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@77b5d} readied 08:15:32.484 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@77b5d} 08:15:32.484 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@77b5d} completed successfully 08:15:32.484 [mdsal-subscription-counters19] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@359e8d21} unlocked 08:15:32.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@359e8d21} readied 08:15:32.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@359e8d21} 08:15:32.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@359e8d21} completed successfully 08:15:32.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.641 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@75c7ac4} unlocked 08:15:32.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@75c7ac4} readied 08:15:32.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@75c7ac4} 08:15:32.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@75c7ac4} completed successfully 08:15:32.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:32.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@257b5d8d} unlocked 08:15:32.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@257b5d8d} readied 08:15:32.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@257b5d8d} 08:15:32.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@257b5d8d} completed successfully 08:15:32.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1e1d07ec} unlocked 08:15:33.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1e1d07ec} readied 08:15:33.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1e1d07ec} 08:15:33.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1e1d07ec} completed successfully 08:15:33.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5f2b768b} unlocked 08:15:33.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5f2b768b} readied 08:15:33.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5f2b768b} 08:15:33.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5f2b768b} completed successfully 08:15:33.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3bc5bdf0} unlocked 08:15:33.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3bc5bdf0} readied 08:15:33.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3bc5bdf0} 08:15:33.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3bc5bdf0} completed successfully 08:15:33.212 [mdsal-subscription-counters17] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@442d0830} unlocked 08:15:33.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@442d0830} readied 08:15:33.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@442d0830} 08:15:33.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@442d0830} completed successfully 08:15:33.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@32f9553e} unlocked 08:15:33.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@32f9553e} readied 08:15:33.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@32f9553e} 08:15:33.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@32f9553e} completed successfully 08:15:33.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36e2e2c4} unlocked 08:15:33.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36e2e2c4} readied 08:15:33.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36e2e2c4} 08:15:33.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36e2e2c4} completed successfully 08:15:33.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.319 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@205ee3d5} unlocked 08:15:33.319 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@205ee3d5} readied 08:15:33.319 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@205ee3d5} 08:15:33.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@205ee3d5} completed successfully 08:15:33.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@c9e0366} unlocked 08:15:33.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@c9e0366} readied 08:15:33.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@c9e0366} 08:15:33.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@c9e0366} completed successfully 08:15:33.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.511 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces 08:15:33.512 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=9 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:33.512 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:33.512 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:33.512 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:33.512 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:33.512 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:33.512 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:33.513 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:33.513 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:33.513 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces 08:15:33.513 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces 08:15:33.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4fecec25} unlocked 08:15:33.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4fecec25} readied 08:15:33.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4fecec25} 08:15:33.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4fecec25} completed successfully 08:15:33.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.513 [/127.0.0.1:59004-http-server-req-3] DEBUG org.opendaylight.restconf.server.spi.YangLibraryVersionResource -- Cannot find yang-library-version java.lang.IllegalArgumentException: Module for QNameModule{ns=urn:ietf:params:xml:ns:yang:ietf-restconf, rev=2017-01-26} not found at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.enterYangData(SchemaInferenceStack.java:567) at org.opendaylight.restconf.server.spi.YangLibraryVersionResource.of(YangLibraryVersionResource.java:50) at org.opendaylight.restconf.server.mdsal.MdsalServerStrategy.(MdsalServerStrategy.java:37) at org.opendaylight.restconf.server.mdsal.MdsalMountPointResolver.resolveMountPoint(MdsalMountPointResolver.java:77) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.resolveStrategy(AbstractServerStrategy.java:385) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataGET(MdsalRestconfServer.java:181) at org.opendaylight.restconf.server.PendingDataGet.execute(PendingDataGet.java:52) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:33.514 [/127.0.0.1:59004-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.codecs.YangInstanceIdentifierToPathCodec -- Resulting gNMI Path of identifier /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces is elem { name: "openconfig-interfaces:interfaces" } 08:15:33.514 [/127.0.0.1:59004-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Sending gNMI GetRequest: path { elem { name: "openconfig-interfaces:interfaces" } } type: STATE encoding: JSON_IETF 08:15:33.516 [/127.0.0.1:59004-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.transactions.ReadOnlyTx -- Closing ReadOnlyTx resources for node: [gnmi-node-test] 08:15:33.516 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND HEADERS: streamId=5 headers=GrpcHttp2OutboundHeaders[:authority: 127.0.0.1:41545, :path: /gnmi.gNMI/Get, :method: POST, :scheme: https, content-type: application/grpc, te: trailers, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:33.516 [/127.0.0.1:59004-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.codecs.YangInstanceIdentifierToPathCodec -- Resulting gNMI Path of identifier /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces is elem { name: "openconfig-interfaces:interfaces" } 08:15:33.516 [/127.0.0.1:59004-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Sending gNMI GetRequest: path { elem { name: "openconfig-interfaces:interfaces" } } type: CONFIG encoding: JSON_IETF 08:15:33.516 [/127.0.0.1:59004-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.transactions.ReadOnlyTx -- Closing ReadOnlyTx resources for node: [gnmi-node-test] 08:15:33.517 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND DATA: streamId=5 padding=0 endStream=true length=47 bytes=000000002a12241a220a206f70656e636f6e6669672d696e74657266616365733a696e746572666163657318022804 08:15:33.518 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND HEADERS: streamId=7 headers=GrpcHttp2OutboundHeaders[:authority: 127.0.0.1:41545, :path: /gnmi.gNMI/Get, :method: POST, :scheme: https, content-type: application/grpc, te: trailers, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:33.518 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND HEADERS: streamId=5 headers=GrpcHttp2RequestHeaders[:path: /gnmi.gNMI/Get, :authority: 127.0.0.1:41545, :method: POST, :scheme: https, te: trailers, content-type: application/grpc, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:33.519 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND DATA: streamId=5 padding=0 endStream=true length=47 bytes=000000002a12241a220a206f70656e636f6e6669672d696e74657266616365733a696e746572666163657318022804 08:15:33.519 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND DATA: streamId=7 padding=0 endStream=true length=47 bytes=000000002a12241a220a206f70656e636f6e6669672d696e74657266616365733a696e746572666163657318012804 08:15:33.519 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND HEADERS: streamId=7 headers=GrpcHttp2RequestHeaders[:path: /gnmi.gNMI/Get, :authority: 127.0.0.1:41545, :method: POST, :scheme: https, te: trailers, content-type: application/grpc, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:33.520 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND DATA: streamId=7 padding=0 endStream=true length=47 bytes=000000002a12241a220a206f70656e636f6e6669672d696e74657266616365733a696e746572666163657318012804 08:15:33.521 [grpc-default-executor-4] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- GetRequest received: { "path": [{ "element": [], "origin": "", "elem": [{ "name": "openconfig-interfaces:interfaces", "key": { } }], "target": "" }], "type": "STATE", "encoding": "JSON_IETF", "useModels": [], "extension": [] } 08:15:33.521 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- GetRequest received: { "path": [{ "element": [], "origin": "", "elem": [{ "name": "openconfig-interfaces:interfaces", "key": { } }], "target": "" }], "type": "CONFIG", "encoding": "JSON_IETF", "useModels": [], "extension": [] } 08:15:33.521 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: DOM-CFG-1 allocated with snapshot Version[7fa7c4bc] 08:15:33.521 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: DOM-CFG-1 Read: /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:33.521 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: DOM-CFG-1 : Closed 08:15:33.521 [grpc-default-executor-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: DOM-STATE-1 allocated with snapshot Version[3032b238] 08:15:33.521 [grpc-default-executor-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: DOM-STATE-1 Read: /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:33.521 [grpc-default-executor-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: DOM-STATE-1 : Closed 08:15:33.521 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:33.521 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:33.522 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter$OrderedNormalizedNodeWriter -- Skipping key child ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=eth3} 08:15:33.522 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)counters 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)config 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter$OrderedNormalizedNodeWriter -- Skipping key child ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0} 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:33.522 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)config 08:15:33.522 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:33.522 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state 08:15:33.522 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:33.522 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)state 08:15:33.523 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter$OrderedNormalizedNodeWriter -- Skipping key child ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0} 08:15:33.523 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:33.523 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:33.523 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:33.523 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:33.523 [grpc-default-executor-4] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)state 08:15:33.523 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- GetResponse ready: { "notification": [{ "timestamp": "1766304933523", "alias": "", "update": [{ "path": { "element": [], "origin": "", "elem": [{ "name": "openconfig-interfaces:interfaces", "key": { } }], "target": "" }, "val": { "jsonIetfVal": "eyJvcGVuY29uZmlnLWludGVyZmFjZXM6aW50ZXJmYWNlcyI6eyJpbnRlcmZhY2UiOlt7Im5hbWUiOiJldGgzIiwiY29uZmlnIjp7Im10dSI6MTUwMCwibmFtZSI6ImFkbWluIiwibG9vcGJhY2stbW9kZSI6ZmFsc2UsImVuYWJsZWQiOmZhbHNlLCJ0eXBlIjoib3BlbmNvbmZpZy1pZi10eXBlczpJRl9FVEhFUk5FVCJ9fSx7Im5hbWUiOiJicjAiLCJvcGVuY29uZmlnLWlmLWFnZ3JlZ2F0ZTphZ2dyZWdhdGlvbiI6eyJjb25maWciOnsibWluLWxpbmtzIjo1LCJsYWctdHlwZSI6IkxBQ1AifSwib3BlbmNvbmZpZy12bGFuOnN3aXRjaGVkLXZsYW4iOnsiY29uZmlnIjp7ImFjY2Vzcy12bGFuIjo1NCwiaW50ZXJmYWNlLW1vZGUiOiJBQ0NFU1MiLCJuYXRpdmUtdmxhbiI6MzR9fX0sImNvbmZpZyI6eyJtdHUiOjEwMCwibmFtZSI6ImFkbWluIiwibG9vcGJhY2stbW9kZSI6ZmFsc2UsImVuYWJsZWQiOmZhbHNlLCJ0eXBlIjoib3BlbmNvbmZpZy1pZi10eXBlczpJRl9FVEhFUk5FVCJ9LCJvcGVuY29uZmlnLWlmLWV0aGVybmV0OmV0aGVybmV0Ijp7ImNvbmZpZyI6eyJwb3J0LXNwZWVkIjoib3BlbmNvbmZpZy1pZi1ldGhlcm5ldDpTUEVFRF8xME1CIiwiYXV0by1uZWdvdGlhdGUiOnRydWUsIm9wZW5jb25maWctaWYtYWdncmVnYXRlOmFnZ3JlZ2F0ZS1pZCI6ImFkbWluIiwiZW5hYmxlLWZsb3ctY29udHJvbCI6dHJ1ZX0sIm9wZW5jb25maWctdmxhbjpzd2l0Y2hlZC12bGFuIjp7ImNvbmZpZyI6eyJhY2Nlc3MtdmxhbiI6NDUsImludGVyZmFjZS1tb2RlIjoiQUNDRVNTIiwibmF0aXZlLXZsYW4iOjM3fX19fV19fQ==" }, "duplicates": 0 }], "delete": [], "atomic": false }], "extension": [] } 08:15:33.523 [grpc-default-executor-4] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- GetResponse ready: { "notification": [{ "timestamp": "1766304933523", "alias": "", "update": [{ "path": { "element": [], "origin": "", "elem": [{ "name": "openconfig-interfaces:interfaces", "key": { } }], "target": "" }, "val": { "jsonIetfVal": "eyJvcGVuY29uZmlnLWludGVyZmFjZXM6aW50ZXJmYWNlcyI6eyJpbnRlcmZhY2UiOlt7Im5hbWUiOiJicjAiLCJzdGF0ZSI6eyJpZmluZGV4IjoxLCJtdHUiOjEwMCwibG9vcGJhY2stbW9kZSI6ZmFsc2UsIm9wZXItc3RhdHVzIjoiRE9XTiIsImNvdW50ZXJzIjp7ImluLXBrdHMiOiIxMDEiLCJvdXQtb2N0ZXRzIjoiMTA1Iiwib3V0LXBrdHMiOiIxMDYiLCJpbi1vY3RldHMiOiIxMDAiLCJvdXQtZGlzY2FyZHMiOiIxMDciLCJpbi1mY3MtZXJyb3JzIjoiMTA0Iiwib3V0LWVycm9ycyI6IjEwOCIsImluLWVycm9ycyI6IjEwMyIsImluLWRpc2NhcmRzIjoiMTAyIn0sIm5hbWUiOiJicjAiLCJlbmFibGVkIjpmYWxzZSwibG9naWNhbCI6dHJ1ZSwidHlwZSI6Im9wZW5jb25maWctaWYtdHlwZXM6SUZfRVRIRVJORVQiLCJhZG1pbi1zdGF0dXMiOiJVUCJ9LCJvcGVuY29uZmlnLWlmLWFnZ3JlZ2F0ZTphZ2dyZWdhdGlvbiI6eyJzdGF0ZSI6eyJsYWctdHlwZSI6IkxBQ1AiLCJtZW1iZXIiOlsiYnIwIl0sImxhZy1zcGVlZCI6MjAsIm1pbi1saW5rcyI6NX0sIm9wZW5jb25maWctdmxhbjpzd2l0Y2hlZC12bGFuIjp7InN0YXRlIjp7ImFjY2Vzcy12bGFuIjo1NCwiaW50ZXJmYWNlLW1vZGUiOiJBQ0NFU1MiLCJuYXRpdmUtdmxhbiI6MzR9fX0sImNvbmZpZyI6eyJlbmFibGVkIjp0cnVlLCJ0eXBlIjoib3BlbmNvbmZpZy1pZi10eXBlczpJRl9FVEhFUk5FVCIsImxvb3BiYWNrLW1vZGUiOmZhbHNlfSwib3BlbmNvbmZpZy1pZi1ldGhlcm5ldDpldGhlcm5ldCI6eyJzdGF0ZSI6eyJwb3J0LXNwZWVkIjoib3BlbmNvbmZpZy1pZi1ldGhlcm5ldDpTUEVFRF8xME1CIiwibmVnb3RpYXRlZC1kdXBsZXgtbW9kZSI6IkZVTEwiLCJlbmFibGUtZmxvdy1jb250cm9sIjp0cnVlLCJuZWdvdGlhdGVkLXBvcnQtc3BlZWQiOiJvcGVuY29uZmlnLWlmLWV0aGVybmV0OlNQRUVEXzEwTUIiLCJhdXRvLW5lZ290aWF0ZSI6dHJ1ZSwib3BlbmNvbmZpZy1pZi1hZ2dyZWdhdGU6YWdncmVnYXRlLWlkIjoiYWRtaW4iLCJody1tYWMtYWRkcmVzcyI6IjAwOjAwOjBBOkJCOjI4OkZDIn0sIm9wZW5jb25maWctdmxhbjpzd2l0Y2hlZC12bGFuIjp7InN0YXRlIjp7ImFjY2Vzcy12bGFuIjo0NSwiaW50ZXJmYWNlLW1vZGUiOiJBQ0NFU1MiLCJuYXRpdmUtdmxhbiI6Mzd9fX19XX19" }, "duplicates": 0 }], "delete": [], "atomic": false }], "extension": [] } 08:15:33.523 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND HEADERS: streamId=7 headers=GrpcHttp2OutboundHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:33.524 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND HEADERS: streamId=5 headers=GrpcHttp2OutboundHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:33.524 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND DATA: streamId=7 padding=0 endStream=false length=861 bytes=00000003580ad5060893cde9ffb33322cb060a241a220a206f70656e636f6e6669672d696e74657266616365733a696e74657266616365731aa2065a9f067b22... 08:15:33.524 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND HEADERS: streamId=7 headers=GrpcHttp2OutboundHeaders[grpc-status: 0] padding=0 endStream=true 08:15:33.524 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND DATA: streamId=5 padding=0 endStream=false length=1223 bytes=00000004c20abf090893cde9ffb33322b5090a241a220a206f70656e636f6e6669672d696e74657266616365733a696e74657266616365731a8c095a89097b22... 08:15:33.524 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] OUTBOUND HEADERS: streamId=5 headers=GrpcHttp2OutboundHeaders[grpc-status: 0] padding=0 endStream=true 08:15:33.524 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=7 headers=GrpcHttp2ResponseHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:33.525 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=5 headers=GrpcHttp2ResponseHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:33.525 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND DATA: streamId=7 padding=0 endStream=false length=861 bytes=00000003580ad5060893cde9ffb33322cb060a241a220a206f70656e636f6e6669672d696e74657266616365733a696e74657266616365731aa2065a9f067b22... 08:15:33.525 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=7 headers=GrpcHttp2ResponseHeaders[grpc-status: 0] padding=0 endStream=true 08:15:33.525 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND DATA: streamId=5 padding=0 endStream=false length=1223 bytes=00000004c20abf090893cde9ffb33322b5090a241a220a206f70656e636f6e6669672d696e74657266616365733a696e74657266616365731a8c095a89097b22... 08:15:33.525 [grpc-default-executor-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Got gNMI GetResponse: notification { timestamp: 1766304933523 update { path { elem { name: "openconfig-interfaces:interfaces" } } val { json_ietf_val: "{\"openconfig-interfaces:interfaces\":{\"interface\":[{\"name\":\"eth3\",\"config\":{\"mtu\":1500,\"name\":\"admin\",\"loopback-mode\":false,\"enabled\":false,\"type\":\"openconfig-if-types:IF_ETHERNET\"}},{\"name\":\"br0\",\"openconfig-if-aggregate:aggregation\":{\"config\":{\"min-links\":5,\"lag-type\":\"LACP\"},\"openconfig-vlan:switched-vlan\":{\"config\":{\"access-vlan\":54,\"interface-mode\":\"ACCESS\",\"native-vlan\":34}}},\"config\":{\"mtu\":100,\"name\":\"admin\",\"loopback-mode\":false,\"enabled\":false,\"type\":\"openconfig-if-types:IF_ETHERNET\"},\"openconfig-if-ethernet:ethernet\":{\"config\":{\"port-speed\":\"openconfig-if-ethernet:SPEED_10MB\",\"auto-negotiate\":true,\"openconfig-if-aggregate:aggregate-id\":\"admin\",\"enable-flow-control\":true},\"openconfig-vlan:switched-vlan\":{\"config\":{\"access-vlan\":45,\"interface-mode\":\"ACCESS\",\"native-vlan\":37}}}}]}}" } } } 08:15:33.525 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=5 headers=GrpcHttp2ResponseHeaders[grpc-status: 0] padding=0 endStream=true 08:15:33.525 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Got gNMI GetResponse: notification { timestamp: 1766304933523 update { path { elem { name: "openconfig-interfaces:interfaces" } } val { json_ietf_val: "{\"openconfig-interfaces:interfaces\":{\"interface\":[{\"name\":\"br0\",\"state\":{\"ifindex\":1,\"mtu\":100,\"loopback-mode\":false,\"oper-status\":\"DOWN\",\"counters\":{\"in-pkts\":\"101\",\"out-octets\":\"105\",\"out-pkts\":\"106\",\"in-octets\":\"100\",\"out-discards\":\"107\",\"in-fcs-errors\":\"104\",\"out-errors\":\"108\",\"in-errors\":\"103\",\"in-discards\":\"102\"},\"name\":\"br0\",\"enabled\":false,\"logical\":true,\"type\":\"openconfig-if-types:IF_ETHERNET\",\"admin-status\":\"UP\"},\"openconfig-if-aggregate:aggregation\":{\"state\":{\"lag-type\":\"LACP\",\"member\":[\"br0\"],\"lag-speed\":20,\"min-links\":5},\"openconfig-vlan:switched-vlan\":{\"state\":{\"access-vlan\":54,\"interface-mode\":\"ACCESS\",\"native-vlan\":34}}},\"config\":{\"enabled\":true,\"type\":\"openconfig-if-types:IF_ETHERNET\",\"loopback-mode\":false},\"openconfig-if-ethernet:ethernet\":{\"state\":{\"port-speed\":\"openconfig-if-ethernet:SPEED_10MB\",\"negotiated-duplex-mode\":\"FULL\",\"enable-flow-control\":true,\"negotiated-port-speed\":\"openconfig-if-ethernet:SPEED_10MB\",\"auto-negotiate\":true,\"openconfig-if-aggregate:aggregate-id\":\"admin\",\"hw-mac-address\":\"00:00:0A:BB:28:FC\"},\"openconfig-vlan:switched-vlan\":{\"state\":{\"access-vlan\":45,\"interface-mode\":\"ACCESS\",\"native-vlan\":37}}}}]}}" } } } 08:15:33.527 [grpc-default-executor-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Parsed Normalized nodes from gNMI GetResponse: ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, body=UnmodifiableCollection{[ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=eth3}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=1500}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=eth3}]}, ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=br0}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, body=5}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, body=LACP}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=54}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=34}]}]}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, body=true}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=45}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=37}]}]}]}]}]}}]} 08:15:33.528 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Parsed Normalized nodes from gNMI GetResponse: ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, body=[ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=br0}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, body=1}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, body=DOWN}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, body=101}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, body=105}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, body=106}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, body=107}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, body=104}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, body=108}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, body=103}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, body=102}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, body=UP}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, body=LACP}, ImmutableSystemLeafSetNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, body=[ImmutableLeafSetEntryNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member[br0], body=br0}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, body=20}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, body=5}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=54}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=34}]}]}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, body=FULL}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, body=00:00:0A:BB:28:FC}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=45}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=37}]}]}]}]}]}]} 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)counters 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)state 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)config 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:33.529 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)state 08:15:33.530 [/127.0.0.1:59004-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)config 08:15:33.530 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=9 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 1660] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:33.530 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND DATA: streamId=9 padding=0 endStream=true length=1660 bytes=7b226f70656e636f6e6669672d696e74657266616365733a696e7465726661636573223a7b22696e74657266616365223a5b7b226e616d65223a226574683322... 08:15:33.531 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Check mountpoint for node gnmi-node-test is created response (GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces) 200 08:15:33.531 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Device successfully connected! 08:15:33.532 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiUploadModelsITTest -- Content of YANG gnmi-test-model.yang file to re-upload: module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } 08:15:33.532 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0 08:15:33.533 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=11 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0, :scheme: http, content-type: application/json, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:33.533 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.AbstractBasicAuthHandler -- UNAUTHORIZED: request has no 'Basic' Authorization header 08:15:33.533 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=11 headers=DefaultHttp2Headers[:status: 401, www-authenticate: BASIC realm="application"] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:33.533 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND RST_STREAM: streamId=11 errorCode=5 08:15:33.533 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=13 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:33.534 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:33.534 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:33.534 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:33.534 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:33.534 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:33.534 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:33.534 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:33.534 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:33.534 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0 08:15:33.534 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0 08:15:33.534 [/127.0.0.1:59004-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-72 allocated with snapshot Version[6b1fb6ae] 08:15:33.534 [/127.0.0.1:59004-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-72 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}] 08:15:33.534 [/127.0.0.1:59004-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-72 : Closed 08:15:33.534 [/127.0.0.1:59004-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-5 allocated with snapshot Version[3dc3ca54] 08:15:33.534 [/127.0.0.1:59004-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-5 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}] 08:15:33.534 [/127.0.0.1:59004-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-5 : Closed 08:15:33.535 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=13 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 1759] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:33.535 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND DATA: streamId=13 padding=0 endStream=true length=1759 bytes=7b22676e6d692d79616e672d73746f726167653a676e6d692d79616e672d6d6f64656c223a5b7b226e616d65223a22676e6d692d746573742d6d6f64656c222c... 08:15:33.536 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending POST request with { "input": { "name": "gnmi-test-model", "version": "1.0.0", "body": "module gnmi-test-model { yang-version \"1\"; namespace \"test:model\"; prefix \"gtm\"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version \"1.0.0\"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key \"number leafref-key identityref-key union-key\"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path \"../number\"; } } leaf identityref-key { type identityref { base \"types:SYSTEM_DEFINED_ROLES\"; } } leaf union-key { type union { type int32; type enumeration { enum \"unbounded\"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } " } } payload to path: http://localhost:45697/rests/operations/gnmi-yang-storage:upload-yang-model 08:15:33.536 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=15 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: POST, :path: /rests/operations/gnmi-yang-storage:upload-yang-model, :scheme: http, content-type: application/json, content-length: 1666, user-agent: Java-http-client/21.0.9] padding=0 endStream=false 08:15:33.537 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND DATA: streamId=15 padding=0 endStream=true length=1666 bytes=7b0a0922696e707574223a207b0a0909226e616d65223a2022676e6d692d746573742d6d6f64656c222c0a09092276657273696f6e223a2022312e302e30222c... 08:15:33.537 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.AbstractBasicAuthHandler -- UNAUTHORIZED: request has no 'Basic' Authorization header 08:15:33.537 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=15 headers=DefaultHttp2Headers[:status: 401, www-authenticate: BASIC realm="application"] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:33.537 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND RST_STREAM: streamId=15 errorCode=5 08:15:33.538 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=17 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: POST, :path: /rests/operations/gnmi-yang-storage:upload-yang-model, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, content-length: 1666, user-agent: Java-http-client/21.0.9] padding=0 endStream=false 08:15:33.538 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND DATA: streamId=17 padding=0 endStream=true length=1666 bytes=7b0a0922696e707574223a207b0a0909226e616d65223a2022676e6d692d746573742d6d6f64656c222c0a09092276657273696f6e223a2022312e302e30222c... 08:15:33.538 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:33.538 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:33.538 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:33.538 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:33.538 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:33.538 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:33.538 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:33.538 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:33.538 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing POST http://localhost:45697/rests/operations/gnmi-yang-storage:upload-yang-model 08:15:33.538 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of POST http://localhost:45697/rests/operations/gnmi-yang-storage:upload-yang-model 08:15:33.539 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.yangtools.binding.loader.RootBindingClassLoader -- Using RootBindingClassLoader{identity=1850f60e, parent=jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528} for interface org.opendaylight.yang.gen.v1.urn.opendaylight.gnmi.yang.storage.rev210331.UploadYangModelInput 08:15:33.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@514bdf39} unlocked 08:15:33.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@514bdf39} readied 08:15:33.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@514bdf39} 08:15:33.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@514bdf39} completed successfully 08:15:33.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.548 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model gnmi-test-model with version 1.0.0 to operational datastore 08:15:33.548 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-73 allocated with snapshot Version[6b1fb6ae] 08:15:33.548 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-73 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]} 08:15:33.549 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-73 : Ready 08:15:33.549 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-73 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:33.549 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-79 is submitted for execution. 08:15:33.549 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-79: canCommit Started 08:15:33.549 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-73 can be committed 08:15:33.549 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-79: preCommit Started 08:15:33.549 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-79: doCommit Started 08:15:33.549 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[6b1fb6ae], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[6b1fb6ae], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[347668b2], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[404594bb], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[217764d9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[27155bee], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[6b1fb6ae], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[6b1fb6ae], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[347668b2], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:33.567 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-79: doCommit completed 08:15:33.569 [/127.0.0.1:59004-http-server-req-5] INFO org.opendaylight.gnmi.southbound.schema.yangstore.rpc.YangStorageServiceRpcImpl -- Yang model gnmi-test-model with version 1.0.0 added to operational datastore 08:15:33.570 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.yangtools.binding.loader.RootBindingClassLoader -- Using existing RootBindingClassLoader{identity=1850f60e, parent=jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528} for interface org.opendaylight.yang.gen.v1.urn.opendaylight.gnmi.yang.storage.rev210331.UploadYangModelOutput 08:15:33.574 [/127.0.0.1:59004-http-server-req-5] DEBUG org.opendaylight.yangtools.binding.loader.RootBindingClassLoader -- Using existing RootBindingClassLoader{identity=1850f60e, parent=jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528} for interface org.opendaylight.yang.gen.v1.urn.opendaylight.gnmi.yang.storage.rev210331.UploadYangModelOutput 08:15:33.576 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=17 headers=DefaultHttp2Headers[:status: 204, content-length: 0] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:33.576 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0 08:15:33.577 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=19 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:33.578 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:33.578 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:33.578 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:33.578 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:33.578 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:33.578 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:33.578 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:33.578 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:33.578 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0 08:15:33.578 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=gnmi-test-model,1.0.0 08:15:33.578 [/127.0.0.1:59004-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-74 allocated with snapshot Version[27155bee] 08:15:33.578 [/127.0.0.1:59004-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-74 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}] 08:15:33.578 [/127.0.0.1:59004-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-74 : Closed 08:15:33.578 [/127.0.0.1:59004-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-6 allocated with snapshot Version[3dc3ca54] 08:15:33.578 [/127.0.0.1:59004-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-6 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}] 08:15:33.578 [/127.0.0.1:59004-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-6 : Closed 08:15:33.579 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=19 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 1759] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:33.579 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND DATA: streamId=19 padding=0 endStream=true length=1759 bytes=7b22676e6d692d79616e672d73746f726167653a676e6d692d79616e672d6d6f64656c223a5b7b226e616d65223a22676e6d692d746573742d6d6f64656c222c... 08:15:33.580 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:33.581 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=21 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:33.581 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:33.581 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:33.581 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:33.581 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:33.581 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:33.581 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:33.581 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:33.581 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:33.581 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:33.581 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:33.582 [/127.0.0.1:59004-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-75 allocated with snapshot Version[27155bee] 08:15:33.582 [/127.0.0.1:59004-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-75 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:33.582 [/127.0.0.1:59004-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-75 : Closed 08:15:33.582 [/127.0.0.1:59004-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-7 allocated with snapshot Version[3dc3ca54] 08:15:33.582 [/127.0.0.1:59004-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-7 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:33.582 [/127.0.0.1:59004-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-7 : Closed 08:15:33.582 [/127.0.0.1:59004-http-server-req-7] DEBUG org.opendaylight.restconf.server.api.AbstractServerRequest -- Request NettyServerRequest{uuid=4d44cea2-1d79-43e8-a50c-ba634f904702, parameters=QueryParameters({}), prettyPrint=org.opendaylight.restconf.api.query.PrettyPrintParam@1314033d} failed org.opendaylight.netconf.databind.RequestException: Request could not be completed because the relevant data model content does not exist at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:582) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:576) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132) at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004) at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:469) at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:119) at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1098) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy.readData(RestconfStrategy.java:576) at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy.getData(MdsalRestconfStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:115) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataGET(MdsalRestconfServer.java:186) at org.opendaylight.restconf.server.PendingDataGet.execute(PendingDataGet.java:52) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:33.582 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=21 headers=DefaultHttp2Headers[:status: 409, content-type: application/yang-data+json, content-length: 242] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:33.583 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND DATA: streamId=21 padding=0 endStream=true length=242 bytes=7b0a2020226572726f7273223a207b0a20202020226572726f72223a205b0a2020202020207b0a2020202020202020226572726f722d746167223a2022646174... 08:15:33.583 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Performing cleanup! 08:15:33.583 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology 08:15:33.584 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=23 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology, :scheme: http, content-type: application/json, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:33.584 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.AbstractBasicAuthHandler -- UNAUTHORIZED: request has no 'Basic' Authorization header 08:15:33.584 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=23 headers=DefaultHttp2Headers[:status: 401, www-authenticate: BASIC realm="application"] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:33.584 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND RST_STREAM: streamId=23 errorCode=5 08:15:33.585 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=25 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:33.585 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:33.585 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:33.585 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:33.585 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:33.585 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:33.585 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:33.585 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:33.585 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:33.585 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology 08:15:33.585 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology 08:15:33.585 [/127.0.0.1:59004-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-76 allocated with snapshot Version[27155bee] 08:15:33.585 [/127.0.0.1:59004-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-76 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}] 08:15:33.585 [/127.0.0.1:59004-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-76 : Closed 08:15:33.585 [/127.0.0.1:59004-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-8 allocated with snapshot Version[3dc3ca54] 08:15:33.585 [/127.0.0.1:59004-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-8 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}] 08:15:33.585 [/127.0.0.1:59004-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-8 : Closed 08:15:33.585 [/127.0.0.1:59004-http-server-resp-6] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types 08:15:33.585 [/127.0.0.1:59004-http-server-resp-6] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters 08:15:33.585 [/127.0.0.1:59004-http-server-resp-6] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter choice (urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice 08:15:33.586 [/127.0.0.1:59004-http-server-resp-6] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state 08:15:33.586 [/127.0.0.1:59004-http-server-resp-6] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities 08:15:33.586 [/127.0.0.1:59004-http-server-resp-6] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters 08:15:33.586 [/127.0.0.1:59004-http-server-resp-6] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters 08:15:33.586 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=25 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 1907] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:33.586 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND DATA: streamId=25 padding=0 endStream=true length=1907 bytes=7b226e6574776f726b2d746f706f6c6f67793a746f706f6c6f6779223a5b7b22746f706f6c6f67792d6964223a22676e6d692d746f706f6c6f6779222c226e6f... 08:15:33.586 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Disconnecting device! 08:15:33.586 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending DELETE request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:33.587 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=27 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: DELETE, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:33.587 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:33.587 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:33.587 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:33.587 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:33.587 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:33.587 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:33.587 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:33.587 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:33.587 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing DELETE http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:33.587 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of DELETE http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: CFG-9 allocated with snapshot Version[3dc3ca54] 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadWriteTransaction -- Tx: CFG-9 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: CFG-9 Delete: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: CFG-9 : Ready 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: CFG-9 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-86 is submitted for execution. 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-86: canCommit Started 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: CFG-9 can be committed 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-86: preCommit Started 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-86: doCommit Started 08:15:33.587 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[116d2321], subtreeVersion=Version[3dc3ca54], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[3dc3ca54], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[3dc3ca54], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[3dc3ca54], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=ValueNode{version=Version[3dc3ca54], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}}, (urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=SimpleContainerNode{version=Version[3dc3ca54], data=ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]}]}}}, untouched=[ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}}} to MaterializedContainerNode{version=Version[116d2321], subtreeVersion=Version[4856a67b], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[4856a67b], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[4856a67b], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[6cd3d9f9], subtreeVersion=Version[4856a67b], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=ValueNode{version=Version[3dc3ca54], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}}}, untouched=[ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}}} 08:15:33.588 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreTreeChangePublisher -- Enqueueing candidates [DefaultDataTreeCandidate{rootPath=/(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], rootNode=DataTreeCandidateNode{modificationType=DELETE, oldMeta=SimpleContainerNode{version=Version[3dc3ca54], data=ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]}}}}] for registration RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} 08:15:33.588 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.yangtools.util.concurrent.AbstractBatchingExecutor -- DataTreeChangeListenerQueueMgr + dsName: Submitting DispatcherTask for worker RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} 08:15:33.588 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.yangtools.util.concurrent.AbstractBatchingExecutor -- DataTreeChangeListenerQueueMgr + dsName: Invoking worker RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} with tasks: [DefaultDataTreeCandidate{rootPath=/(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], rootNode=DataTreeCandidateNode{modificationType=DELETE, oldMeta=SimpleContainerNode{version=Version[3dc3ca54], data=ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]}}}}] 08:15:33.588 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Data tree change on gNMI topology triggered 08:15:33.588 [/127.0.0.1:59004-http-server-req-9] INFO org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Received delete node Uri{value=gnmi-node-test} event, disconnecting ... 08:15:33.588 [grpc-default-executor-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Channel state of node gnmi-node-test changed from READY to SHUTDOWN. Updating operational datastore... 08:15:33.588 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-77 allocated with snapshot Version[27155bee] 08:15:33.588 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-77 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=SHUTDOWN}]}]} 08:15:33.588 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-77 : Ready 08:15:33.588 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-77 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:33.588 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-87 is submitted for execution. 08:15:33.588 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-87: canCommit Started 08:15:33.588 [grpc-nio-worker-ELG-64-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0xc7ab862c, L:/127.0.0.1:42846 - R:/127.0.0.1:41545] OUTBOUND GO_AWAY: lastStreamId=0 errorCode=0 length=0 bytes= 08:15:33.588 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-77 can be committed 08:15:33.588 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-87: preCommit Started 08:15:33.589 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-87: doCommit Started 08:15:33.591 [nioEventLoopGroup-63-1] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xcc65c600, L:/127.0.0.1:41545 - R:/127.0.0.1:42846] INBOUND GO_AWAY: lastStreamId=0 errorCode=0 length=0 bytes= 08:15:33.589 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[27155bee], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[6b1fb6ae], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[6b1fb6ae], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[6b1fb6ae], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[347668b2], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[4651d142], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[4651d142], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[4651d142], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=SHUTDOWN}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[347668b2], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:33.618 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-87: doCommit completed 08:15:33.618 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Current session status SHUTDOWN 08:15:33.618 [/127.0.0.1:59004-http-server-req-9] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Stopping listening on gRPC channel state for node gnmi-node-test 08:15:33.619 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-78 allocated with snapshot Version[4651d142] 08:15:33.619 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-78 Delete: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:33.619 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-78 : Ready 08:15:33.619 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-78 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:33.619 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-88 is submitted for execution. 08:15:33.619 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-88: canCommit Started 08:15:33.620 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-78 can be committed 08:15:33.620 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-88: preCommit Started 08:15:33.621 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-88: doCommit Started 08:15:33.621 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[4651d142], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[4651d142], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[3fcbdf1d], subtreeVersion=Version[4651d142], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[4651d142], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=SHUTDOWN}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[347668b2], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:33.640 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-88: doCommit completed 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.gnmi.southbound.mountpoint.GnmiMountPointRegistrator -- Mountpoint for node gnmi-node-test removed 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-79 allocated with snapshot Version[41eb3f59] 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-79 Delete: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-79 : Ready 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-79 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-89 is submitted for execution. 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-89: canCommit Started 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-79 can be committed 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-89: preCommit Started 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-89: doCommit Started 08:15:33.641 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:33.659 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.AbstractDOMStoreTreeChangePublisher -- Skipping unmodified candidate InMemoryDataTreeCandidate{rootPath=/, rootNode=DataTreeCandidateNode{modificationType=UNMODIFIED, oldMeta=MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}}, newMeta=MaterializedContainerNode{version=Version[6975ed37], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[75a110d8], subtreeVersion=Version[41eb3f59], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[7e1f1856], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[105e8f78], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[528a0abf], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[372eb990], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fc179e4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=MaterializedContainerNode{version=Version[217764d9], subtreeVersion=Version[27155bee], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=ValueNode{version=Version[27155bee], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[171f0280], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[683354d1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[6f6418d6], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[47174743], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[1c6eba6c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[eaf7fca], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[7a2bdd7c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[b11b157], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[404594bb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[306dfcac], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[49853c8d], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[1f989aec], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[21ecf6cb], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[18601190], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[7e6fd91c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[448ec879], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[58ea20a9], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[a5cf5d3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[607a1a9f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[3e6eaeb3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}}}} 08:15:33.677 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-89: doCommit completed 08:15:33.688 [/127.0.0.1:59004-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-86: doCommit completed 08:15:33.689 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=27 headers=DefaultHttp2Headers[:status: 204, content-length: 0] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:33.692 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Delete gnmi node gnmi-node-test response: (DELETE http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test) 204 08:15:33.717 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6956dc87} unlocked 08:15:33.717 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6956dc87} readied 08:15:33.717 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6956dc87} 08:15:33.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6956dc87} completed successfully 08:15:33.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3c419cc4} unlocked 08:15:33.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3c419cc4} readied 08:15:33.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3c419cc4} 08:15:33.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3c419cc4} completed successfully 08:15:33.722 [mdsal-subscription-counters20] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:33.885 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@41598049} unlocked 08:15:33.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@41598049} readied 08:15:33.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@41598049} 08:15:33.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@41598049} completed successfully 08:15:33.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@59506ecc} unlocked 08:15:34.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@59506ecc} readied 08:15:34.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@59506ecc} 08:15:34.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@59506ecc} completed successfully 08:15:34.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@63d3385} unlocked 08:15:34.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@63d3385} readied 08:15:34.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@63d3385} 08:15:34.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@63d3385} completed successfully 08:15:34.363 [mdsal-subscription-counters14] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36aa383a} unlocked 08:15:34.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36aa383a} readied 08:15:34.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36aa383a} 08:15:34.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36aa383a} completed successfully 08:15:34.404 [mdsal-subscription-counters9] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@60d29467} unlocked 08:15:34.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@60d29467} readied 08:15:34.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@60d29467} 08:15:34.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@60d29467} completed successfully 08:15:34.404 [mdsal-subscription-counters16] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@76a0a25f} unlocked 08:15:34.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@76a0a25f} readied 08:15:34.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@76a0a25f} 08:15:34.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@76a0a25f} completed successfully 08:15:34.404 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@65e404b} unlocked 08:15:34.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@65e404b} readied 08:15:34.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@65e404b} 08:15:34.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@65e404b} completed successfully 08:15:34.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.590 [grpc-nio-worker-ELG-64-2] DEBUG io.netty.buffer.PoolThreadCache -- Freed 21 thread-local buffer(s) from thread: grpc-nio-worker-ELG-64-2 08:15:34.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2efb0961} unlocked 08:15:34.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2efb0961} readied 08:15:34.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2efb0961} 08:15:34.591 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2efb0961} completed successfully 08:15:34.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@21c6a990} unlocked 08:15:34.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@21c6a990} readied 08:15:34.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@21c6a990} 08:15:34.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@21c6a990} completed successfully 08:15:34.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:34.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@520755ad} unlocked 08:15:34.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@520755ad} readied 08:15:34.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@520755ad} 08:15:34.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@520755ad} completed successfully 08:15:34.698 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@26af0bbe} unlocked 08:15:35.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@26af0bbe} readied 08:15:35.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@26af0bbe} 08:15:35.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@26af0bbe} completed successfully 08:15:35.048 [mdsal-subscription-counters6] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@50e9be0b} unlocked 08:15:35.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@50e9be0b} readied 08:15:35.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@50e9be0b} 08:15:35.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@50e9be0b} completed successfully 08:15:35.131 [mdsal-subscription-counters0] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@44f707af} unlocked 08:15:35.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@44f707af} readied 08:15:35.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@44f707af} 08:15:35.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@44f707af} completed successfully 08:15:35.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2cb598a1} unlocked 08:15:35.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2cb598a1} readied 08:15:35.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2cb598a1} 08:15:35.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2cb598a1} completed successfully 08:15:35.220 [mdsal-subscription-counters1] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72198472} unlocked 08:15:35.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72198472} readied 08:15:35.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72198472} 08:15:35.258 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72198472} completed successfully 08:15:35.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6f9d65dc} unlocked 08:15:35.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6f9d65dc} readied 08:15:35.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6f9d65dc} 08:15:35.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6f9d65dc} completed successfully 08:15:35.285 [mdsal-subscription-counters15] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13abddff} unlocked 08:15:35.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13abddff} readied 08:15:35.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13abddff} 08:15:35.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13abddff} completed successfully 08:15:35.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13db2fbb} unlocked 08:15:35.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13db2fbb} readied 08:15:35.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13db2fbb} 08:15:35.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13db2fbb} completed successfully 08:15:35.373 [mdsal-subscription-counters21] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2ddf13a6} unlocked 08:15:35.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2ddf13a6} readied 08:15:35.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2ddf13a6} 08:15:35.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2ddf13a6} completed successfully 08:15:35.513 [mdsal-subscription-counters10] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@29e83044} unlocked 08:15:35.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@29e83044} readied 08:15:35.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@29e83044} 08:15:35.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@29e83044} completed successfully 08:15:35.544 [mdsal-subscription-counters3] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.693 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:35.697 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] INBOUND HEADERS: streamId=29 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:35.697 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:35.698 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:35.698 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:35.698 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:35.698 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:35.698 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:35.698 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:35.698 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:35.698 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:35.698 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:35.699 [/127.0.0.1:59004-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-80 allocated with snapshot Version[41eb3f59] 08:15:35.699 [/127.0.0.1:59004-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-80 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:35.699 [/127.0.0.1:59004-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-80 : Closed 08:15:35.699 [/127.0.0.1:59004-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-10 allocated with snapshot Version[4856a67b] 08:15:35.699 [/127.0.0.1:59004-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-10 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:35.699 [/127.0.0.1:59004-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-10 : Closed 08:15:35.700 [/127.0.0.1:59004-http-server-req-10] DEBUG org.opendaylight.restconf.server.api.AbstractServerRequest -- Request NettyServerRequest{uuid=e183e00b-08ce-4468-9903-e2b9bfc04488, parameters=QueryParameters({}), prettyPrint=org.opendaylight.restconf.api.query.PrettyPrintParam@1314033d} failed org.opendaylight.netconf.databind.RequestException: Request could not be completed because the relevant data model content does not exist at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:582) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:576) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132) at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004) at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:469) at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:119) at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1098) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy.readData(RestconfStrategy.java:576) at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy.getData(MdsalRestconfStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:115) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataGET(MdsalRestconfServer.java:186) at org.opendaylight.restconf.server.PendingDataGet.execute(PendingDataGet.java:52) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:35.701 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND HEADERS: streamId=29 headers=DefaultHttp2Headers[:status: 409, content-type: application/yang-data+json, content-length: 242] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:35.701 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND DATA: streamId=29 padding=0 endStream=true length=242 bytes=7b0a2020226572726f7273223a207b0a20202020226572726f72223a205b0a2020202020207b0a2020202020202020226572726f722d746167223a2022646174... 08:15:35.702 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Get node gnmi-node-test from topology when disconnecting: (GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test) 409 08:15:35.703 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Device disconnected! 08:15:35.703 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Cleanup done! 08:15:35.703 [main] DEBUG org.opendaylight.restconf.server.SimpleNettyEndpoint -- Stopping endpoint org.opendaylight.restconf.server.SimpleNettyEndpoint@11db4614 08:15:35.703 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x150a22d6, L:/127.0.0.1:45697 - R:/127.0.0.1:59004] OUTBOUND GO_AWAY: lastStreamId=29 errorCode=0 length=0 bytes= 08:15:35.703 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Threadpools for [id: 0x150a22d6, L:/127.0.0.1:45697 ! R:/127.0.0.1:59004] shut down 08:15:35.704 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Threadpools for [id: 0x150a22d6, L:/127.0.0.1:45697 ! R:/127.0.0.1:59004] shut down 08:15:35.704 [main] DEBUG org.opendaylight.restconf.server.SimpleNettyEndpoint -- Stopped endpoint org.opendaylight.restconf.server.SimpleNettyEndpoint@11db4614 in 918.1 μs 08:15:35.704 [main] INFO org.opendaylight.gnmi.southbound.yangmodule.GnmiSouthboundModule -- Stopping ODL gNMI Southbound Component 08:15:35.704 [main] DEBUG org.opendaylight.gnmi.southbound.mountpoint.GnmiMountPointRegistrator -- Closing Mount Points 08:15:35.704 [main] INFO org.opendaylight.gnmi.southbound.device.connection.DeviceConnectionManager -- Closing all connections to devices 08:15:35.704 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreTreeChangePublisher -- Closing registration RegImpl{closed=true, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@192da29b}} 08:15:35.705 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Performing cleanup! 08:15:35.705 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Cleanup done! 08:15:35.706 [main] INFO org.opendaylight.mdsal.dom.broker.DOMNotificationRouter -- DOM Notification Router started 08:15:35.707 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Following schema contexts will be attempted EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-app-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-mdsal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-rpc}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-encrypt-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-password-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=augmented-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=example-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-certificate-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-force-capabilities}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-yang-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-crypt-hash}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-tls-cipher-suite-algs}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-crypto-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-ip}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-keystore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-acm}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-with-defaults}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-network-instance}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-monitoring}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-truststore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-x509-cert-to-name}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-patch}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-schema-mount}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=network-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=odl-device-notification}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote-augment}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=yang-ext}}]} 08:15:35.707 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Following schema contexts will be attempted EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-app-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-mdsal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-rpc}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-encrypt-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-password-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=augmented-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=example-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-certificate-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-force-capabilities}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-yang-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-crypt-hash}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-tls-cipher-suite-algs}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-crypto-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-ip}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-keystore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-acm}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-with-defaults}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-network-instance}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-monitoring}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-truststore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-x509-cert-to-name}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-patch}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-schema-mount}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=network-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=odl-device-notification}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote-augment}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=yang-ext}}]} 08:15:35.708 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- RESTCONF Server starting on: 127.0.0.1:45697 08:15:35.708 [main] INFO org.opendaylight.mdsal.dom.broker.DOMRpcRouter -- DOM RPC/Action router started 08:15:35.708 [main] INFO org.opendaylight.mdsal.dom.broker.DOMNotificationRouter -- DOM Notification Router started 08:15:35.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e8d1963} unlocked 08:15:35.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e8d1963} readied 08:15:35.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e8d1963} 08:15:35.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e8d1963} completed successfully 08:15:35.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.719 [main] INFO org.opendaylight.aaa.encrypt.impl.AAAEncryptionServiceImpl -- AAAEncryptionService activated 08:15:35.720 [main] INFO org.opendaylight.gnmi.southbound.yangmodule.GnmiSouthboundModule -- Starting ODL gNMI Southbound Component 08:15:35.720 [main] INFO org.opendaylight.gnmi.southbound.provider.GnmiSouthboundProvider -- gNMI init started 08:15:35.720 [main] INFO org.opendaylight.gnmi.southbound.provider.GnmiSouthboundProvider -- Loading provided initial yang loaders 08:15:35.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7b9a6d37} unlocked 08:15:35.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7b9a6d37} readied 08:15:35.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7b9a6d37} 08:15:35.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7b9a6d37} completed successfully 08:15:35.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.723 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model gnmi-test-aug with version 1.0.0 to operational datastore 08:15:35.724 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-0 allocated with snapshot Version[7cd471e0] 08:15:35.724 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-0 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]} 08:15:35.724 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-0 : Ready 08:15:35.725 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-0 is submitted for execution. 08:15:35.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: canCommit Started 08:15:35.725 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-0 can be committed 08:15:35.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: preCommit Started 08:15:35.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: doCommit Started 08:15:35.725 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[7cd471e0], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[61a0088e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=SimpleContainerNode{version=Version[61a0088e], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models, body=[ImmutableSystemMapNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model, body=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}]}}}} 08:15:35.725 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: doCommit completed 08:15:35.725 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByPathYangLoaderService -- Loaded yang model gnmi-test-aug with version 1.0.0 08:15:35.728 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model gnmi-test-model with version 1.0.0 to operational datastore 08:15:35.728 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-1 allocated with snapshot Version[61a0088e] 08:15:35.728 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-1 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]} 08:15:35.728 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-1 : Ready 08:15:35.728 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-1 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.728 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-1 is submitted for execution. 08:15:35.728 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: canCommit Started 08:15:35.728 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-1 can be committed 08:15:35.728 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: preCommit Started 08:15:35.729 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: doCommit Started 08:15:35.729 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[61a0088e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=SimpleContainerNode{version=Version[61a0088e], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models, body=[ImmutableSystemMapNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model, body=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}]}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[4c03653a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[4c03653a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[4c03653a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.729 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: doCommit completed 08:15:35.729 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByPathYangLoaderService -- Loaded yang model gnmi-test-model with version 1.0.0 08:15:35.736 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-platform-types with version 1.1.0 to operational datastore 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-2 allocated with snapshot Version[4c03653a] 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-2 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]} 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-2 : Ready 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-2 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-2 is submitted for execution. 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: canCommit Started 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-2 can be committed 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: preCommit Started 08:15:35.740 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: doCommit Started 08:15:35.740 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[4c03653a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[4c03653a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[4c03653a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[75301780], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[75301780], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[75301780], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.741 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: doCommit completed 08:15:35.741 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-platform-types with version 1.1.0 08:15:35.748 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-inet-types with version 0.4.0 to operational datastore 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-3 allocated with snapshot Version[75301780] 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-3 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]} 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-3 : Ready 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-3 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-3 is submitted for execution. 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: canCommit Started 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-3 can be committed 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: preCommit Started 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: doCommit Started 08:15:35.756 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[75301780], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[75301780], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[75301780], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[1285a107], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[1285a107], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[1285a107], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.756 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: doCommit completed 08:15:35.757 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-inet-types with version 0.4.0 08:15:35.761 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-vlan-types with version 3.1.1 to operational datastore 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-4 allocated with snapshot Version[1285a107] 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-4 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]} 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-4 : Ready 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-4 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-4 is submitted for execution. 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: canCommit Started 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-4 can be committed 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: preCommit Started 08:15:35.765 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: doCommit Started 08:15:35.765 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[1285a107], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[1285a107], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[1285a107], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[157c3e1e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[157c3e1e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[157c3e1e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.766 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: doCommit completed 08:15:35.766 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-vlan-types with version 3.1.1 08:15:35.770 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-yang-types with version 0.3.0 to operational datastore 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-5 allocated with snapshot Version[157c3e1e] 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-5 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]} 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-5 : Ready 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-5 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-5 is submitted for execution. 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: canCommit Started 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-5 can be committed 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: preCommit Started 08:15:35.773 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: doCommit Started 08:15:35.773 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[157c3e1e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[157c3e1e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[157c3e1e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[79784da5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[79784da5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[79784da5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.775 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: doCommit completed 08:15:35.775 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-yang-types with version 0.3.0 08:15:35.778 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-procmon with version 0.4.0 to operational datastore 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-6 allocated with snapshot Version[79784da5] 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-6 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]} 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-6 : Ready 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-6 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-6 is submitted for execution. 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: canCommit Started 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-6 can be committed 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: preCommit Started 08:15:35.780 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: doCommit Started 08:15:35.780 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[79784da5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[79784da5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[79784da5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[54e3de36], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[54e3de36], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[54e3de36], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.782 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: doCommit completed 08:15:35.782 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-procmon with version 0.4.0 08:15:35.786 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-system-terminal with version 0.3.1 to operational datastore 08:15:35.788 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-7 allocated with snapshot Version[54e3de36] 08:15:35.788 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-7 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]} 08:15:35.788 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-7 : Ready 08:15:35.788 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-7 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.788 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-7 is submitted for execution. 08:15:35.788 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: canCommit Started 08:15:35.788 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-7 can be committed 08:15:35.788 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: preCommit Started 08:15:35.789 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: doCommit Started 08:15:35.789 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[54e3de36], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[54e3de36], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[54e3de36], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[4ee8f18b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[4ee8f18b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[4ee8f18b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.790 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: doCommit completed 08:15:35.790 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-system-terminal with version 0.3.1 08:15:35.807 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa with version 0.5.0 to operational datastore 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-8 allocated with snapshot Version[4ee8f18b] 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-8 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]} 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-8 : Ready 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-8 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-8 is submitted for execution. 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: canCommit Started 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-8 can be committed 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: preCommit Started 08:15:35.816 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: doCommit Started 08:15:35.816 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[4ee8f18b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[4ee8f18b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[4ee8f18b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[21259db4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[21259db4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[21259db4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.818 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: doCommit completed 08:15:35.818 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa with version 0.5.0 08:15:35.822 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-license with version 0.2.0 to operational datastore 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-9 allocated with snapshot Version[21259db4] 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-9 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]} 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-9 : Ready 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-9 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-9 is submitted for execution. 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: canCommit Started 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-9 can be committed 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: preCommit Started 08:15:35.824 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: doCommit Started 08:15:35.824 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[21259db4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[21259db4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[21259db4], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[4b8b8f20], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[4b8b8f20], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[4b8b8f20], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.826 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: doCommit completed 08:15:35.826 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-license with version 0.2.0 08:15:35.838 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-ethernet with version 2.11.0 to operational datastore 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-10 allocated with snapshot Version[4b8b8f20] 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-10 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]} 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-10 : Ready 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-10 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-10 is submitted for execution. 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: canCommit Started 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-10 can be committed 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: preCommit Started 08:15:35.847 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: doCommit Started 08:15:35.847 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[4b8b8f20], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[4b8b8f20], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[4b8b8f20], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[6fa3f6b1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[6fa3f6b1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[6fa3f6b1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.851 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: doCommit completed 08:15:35.851 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-ethernet with version 2.11.0 08:15:35.855 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-alarms with version 0.3.2 to operational datastore 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-11 allocated with snapshot Version[6fa3f6b1] 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-11 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]} 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-11 : Ready 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-11 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-11 is submitted for execution. 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: canCommit Started 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-11 can be committed 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: preCommit Started 08:15:35.859 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: doCommit Started 08:15:35.859 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[6fa3f6b1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[6fa3f6b1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[6fa3f6b1], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3c154940], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[3c154940], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[3c154940], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.863 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: doCommit completed 08:15:35.863 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-alarms with version 0.3.2 08:15:35.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13980810} unlocked 08:15:35.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13980810} readied 08:15:35.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13980810} 08:15:35.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13980810} completed successfully 08:15:35.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:35.911 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model iana-if-type with version 2023-01-26 to operational datastore 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-12 allocated with snapshot Version[3c154940] 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-12 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]} 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-12 : Ready 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-12 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-12 is submitted for execution. 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: canCommit Started 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-12 can be committed 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: preCommit Started 08:15:35.925 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: doCommit Started 08:15:35.925 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3c154940], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[3c154940], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[3c154940], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[33acc0f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[33acc0f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[33acc0f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.931 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: doCommit completed 08:15:35.931 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model iana-if-type with version 2023-01-26 08:15:35.934 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-alarm-types with version 0.2.1 to operational datastore 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-13 allocated with snapshot Version[33acc0f3] 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-13 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]} 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-13 : Ready 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-13 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-13 is submitted for execution. 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: canCommit Started 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-13 can be committed 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: preCommit Started 08:15:35.936 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: doCommit Started 08:15:35.937 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[33acc0f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[33acc0f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[33acc0f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[182aac9a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[182aac9a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[182aac9a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.943 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: doCommit completed 08:15:35.943 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-alarm-types with version 0.2.1 08:15:35.946 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa-types with version 0.4.1 to operational datastore 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-14 allocated with snapshot Version[182aac9a] 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-14 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]} 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-14 : Ready 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-14 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-14 is submitted for execution. 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: canCommit Started 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-14 can be committed 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: preCommit Started 08:15:35.948 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: doCommit Started 08:15:35.948 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[182aac9a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[182aac9a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[182aac9a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[5f7a8410], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[5f7a8410], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[5f7a8410], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:35.955 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: doCommit completed 08:15:35.955 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa-types with version 0.4.1 08:15:35.976 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model ietf-interfaces with version 2018-02-20 to operational datastore 08:15:35.996 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-15 allocated with snapshot Version[5f7a8410] 08:15:35.996 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-15 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]} 08:15:35.997 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-15 : Ready 08:15:35.997 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-15 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:35.997 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-15 is submitted for execution. 08:15:35.997 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: canCommit Started 08:15:35.997 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-15 can be committed 08:15:35.997 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: preCommit Started 08:15:35.997 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: doCommit Started 08:15:35.997 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[5f7a8410], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[5f7a8410], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[5f7a8410], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[6c977411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[6c977411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[6c977411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.005 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: doCommit completed 08:15:36.005 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model ietf-interfaces with version 2018-02-20 08:15:36.015 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-system-logging with version 0.3.1 to operational datastore 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-16 allocated with snapshot Version[6c977411] 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-16 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]} 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-16 : Ready 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-16 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-16 is submitted for execution. 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: canCommit Started 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-16 can be committed 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: preCommit Started 08:15:36.019 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: doCommit Started 08:15:36.019 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[6c977411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[6c977411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[6c977411], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[7cd36e8c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[7cd36e8c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[7cd36e8c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.028 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: doCommit completed 08:15:36.029 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-system-logging with version 0.3.1 08:15:36.040 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-types with version 0.6.0 to operational datastore 08:15:36.045 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-17 allocated with snapshot Version[7cd36e8c] 08:15:36.045 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-17 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]} 08:15:36.045 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-17 : Ready 08:15:36.045 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-17 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.045 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-17 is submitted for execution. 08:15:36.045 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: canCommit Started 08:15:36.045 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-17 can be committed 08:15:36.045 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: preCommit Started 08:15:36.046 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: doCommit Started 08:15:36.046 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[7cd36e8c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[7cd36e8c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[7cd36e8c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[2f6b6a2e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2f6b6a2e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2f6b6a2e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.055 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: doCommit completed 08:15:36.055 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-types with version 0.6.0 08:15:36.060 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa-radius with version 0.5.0 to operational datastore 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-18 allocated with snapshot Version[2f6b6a2e] 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-18 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]} 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-18 : Ready 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-18 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-18 is submitted for execution. 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-18: canCommit Started 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-18 can be committed 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-18: preCommit Started 08:15:36.062 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-18: doCommit Started 08:15:36.062 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[2f6b6a2e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2f6b6a2e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2f6b6a2e], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[55abd09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[55abd09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[55abd09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.073 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-18: doCommit completed 08:15:36.073 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa-radius with version 0.5.0 08:15:36.075 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-types with version 0.2.1 to operational datastore 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-19 allocated with snapshot Version[55abd09] 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-19 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]} 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-19 : Ready 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-19 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-19 is submitted for execution. 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-19: canCommit Started 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-19 can be committed 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-19: preCommit Started 08:15:36.076 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-19: doCommit Started 08:15:36.076 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[55abd09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[55abd09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[55abd09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[380c1057], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[380c1057], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[380c1057], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.087 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-19: doCommit completed 08:15:36.087 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-types with version 0.2.1 08:15:36.091 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-aggregate with version 2.4.3 to operational datastore 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-20 allocated with snapshot Version[380c1057] 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-20 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]} 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-20 : Ready 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-20 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-20 is submitted for execution. 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-20: canCommit Started 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-20 can be committed 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-20: preCommit Started 08:15:36.094 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-20: doCommit Started 08:15:36.094 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[380c1057], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[380c1057], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[380c1057], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[8a3ed00], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[8a3ed00], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[8a3ed00], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.104 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-20: doCommit completed 08:15:36.104 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-aggregate with version 2.4.3 08:15:36.127 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-system with version 0.10.0 to operational datastore 08:15:36.138 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-21 allocated with snapshot Version[8a3ed00] 08:15:36.138 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-21 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]} 08:15:36.139 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-21 : Ready 08:15:36.139 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-21 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.139 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-21 is submitted for execution. 08:15:36.139 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-21: canCommit Started 08:15:36.139 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-21 can be committed 08:15:36.139 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-21: preCommit Started 08:15:36.139 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-21: doCommit Started 08:15:36.139 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[8a3ed00], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[8a3ed00], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[8a3ed00], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[ea2120c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[ea2120c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[ea2120c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.150 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-21: doCommit completed 08:15:36.150 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-system with version 0.10.0 08:15:36.153 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa-tacacs with version 0.5.0 to operational datastore 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-22 allocated with snapshot Version[ea2120c] 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-22 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]} 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-22 : Ready 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-22 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-22 is submitted for execution. 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-22: canCommit Started 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-22 can be committed 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-22: preCommit Started 08:15:36.155 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-22: doCommit Started 08:15:36.155 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[ea2120c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[ea2120c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[ea2120c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3d951cc7], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[3d951cc7], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[3d951cc7], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.167 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-22: doCommit completed 08:15:36.168 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa-tacacs with version 0.5.0 08:15:36.174 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model ietf-yang-types with version 2013-07-15 to operational datastore 08:15:36.183 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-23 allocated with snapshot Version[3d951cc7] 08:15:36.183 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-23 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]} 08:15:36.184 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-23 : Ready 08:15:36.184 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-23 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.184 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-23 is submitted for execution. 08:15:36.184 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-23: canCommit Started 08:15:36.184 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-23 can be committed 08:15:36.184 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-23: preCommit Started 08:15:36.184 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-23: doCommit Started 08:15:36.184 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3d951cc7], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[3d951cc7], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[3d951cc7], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[618c5215], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[618c5215], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[618c5215], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.189 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7db2928c} unlocked 08:15:36.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7db2928c} readied 08:15:36.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7db2928c} 08:15:36.196 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-23: doCommit completed 08:15:36.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7db2928c} completed successfully 08:15:36.196 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model ietf-yang-types with version 2013-07-15 08:15:36.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.215 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-interfaces with version 2.5.0 to operational datastore 08:15:36.231 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-24 allocated with snapshot Version[618c5215] 08:15:36.231 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-24 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]} 08:15:36.232 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-24 : Ready 08:15:36.232 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-24 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.232 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-24 is submitted for execution. 08:15:36.232 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-24: canCommit Started 08:15:36.232 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-24 can be committed 08:15:36.232 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-24: preCommit Started 08:15:36.232 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-24: doCommit Started 08:15:36.232 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[618c5215], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[618c5215], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[618c5215], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[438865f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[438865f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[438865f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.245 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-24: doCommit completed 08:15:36.245 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-interfaces with version 2.5.0 08:15:36.250 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-messages with version 0.0.1 to operational datastore 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-25 allocated with snapshot Version[438865f3] 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-25 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]} 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-25 : Ready 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-25 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-25 is submitted for execution. 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-25: canCommit Started 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-25 can be committed 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-25: preCommit Started 08:15:36.253 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-25: doCommit Started 08:15:36.253 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[438865f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[438865f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[438865f3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3cd5d61f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[3cd5d61f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[3cd5d61f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.267 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-25: doCommit completed 08:15:36.267 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-messages with version 0.0.1 08:15:36.270 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-openflow-types with version 0.1.3 to operational datastore 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-26 allocated with snapshot Version[3cd5d61f] 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-26 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]} 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-26 : Ready 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-26 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-26 is submitted for execution. 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-26: canCommit Started 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-26 can be committed 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-26: preCommit Started 08:15:36.271 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-26: doCommit Started 08:15:36.271 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3cd5d61f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[3cd5d61f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[3cd5d61f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[50d6e0e3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[50d6e0e3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[50d6e0e3], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.286 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-26: doCommit completed 08:15:36.286 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-openflow-types with version 0.1.3 08:15:36.306 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-vlan with version 3.2.0 to operational datastore 08:15:36.320 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-27 allocated with snapshot Version[50d6e0e3] 08:15:36.320 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-27 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}]=SimpleContainerNode{version=Version[75301780], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "1.1.0"; revision "2021-01-18" { description "Add identity for software modules"; reference "1.1.0"; } revision "2019-06-03" { description "Add OpenConfig component operating system patch type."; reference "1.0.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.10.1"; } revision "2018-11-16" { description "Added FEC_MODE_TYPE and FEC_STATUS_TYPE"; reference "0.10.0"; } revision "2018-05-05" { description "Added min-max-time to avg-min-max-instant-stats-precision1-celsius, added new CONTROLLER_CARD identity"; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } uses oc-types:stat-interval-state; uses oc-types:min-max-time; } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity CONTROLLER_CARD { base OPENCONFIG_HARDWARE_COMPONENT; description "A type of linecard whose primary role is management or control rather than data forwarding."; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity OPERATING_SYSTEM_UPDATE { base OPENCONFIG_SOFTWARE_COMPONENT; description "An operating system update - which should be a subcomponent of the `OPERATING_SYSTEM` running on a component. An update is defined to be a set of software changes that are atomically installed (and uninstalled) together. Multiple updates may be present for the Operating System. A system should not list all installed software packages using this type -- but rather updates that are bundled together as a single installable item"; } identity BOOT_LOADER { base OPENCONFIG_SOFTWARE_COMPONENT; description "Software layer responsible for loading and booting the device OS or network OS."; } identity SOFTWARE_MODULE { base OPENCONFIG_SOFTWARE_COMPONENT; description "A base identity for software modules installed and/or running on the device. Modules include user-space programs and kernel modules that provide specific functionality. A component with type SOFTWARE_MODULE should also have a module type that indicates the specific type of software module"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } identity FEC_MODE_TYPE { description "Base identity for FEC operational modes."; } identity FEC_ENABLED { base FEC_MODE_TYPE; description "FEC is administratively enabled."; } identity FEC_DISABLED { base FEC_MODE_TYPE; description "FEC is administratively disabled."; } identity FEC_AUTO { base FEC_MODE_TYPE; description "System will determine whether to enable or disable FEC on a transceiver."; } identity FEC_STATUS_TYPE { description "Base identity for FEC operational statuses."; } identity FEC_STATUS_LOCKED { base FEC_STATUS_TYPE; description "FEC is operationally locked."; } identity FEC_STATUS_UNLOCKED { base FEC_STATUS_TYPE; description "FEC is operationally unlocked."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.1.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1285a107], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-inet-types { yang-version "1"; namespace "http://openconfig.net/yang/types/inet"; prefix "oc-inet"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of Internet address related types for use in OpenConfig modules. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.4.0"; revision "2021-01-07" { description "Remove module extension oc-ext:regexp-posix by making pattern regexes conform to RFC7950. Types impacted: - ipv4-address - ipv4-address-zoned - ipv6-address - domain-name"; reference "0.4.0"; } revision "2020-10-12" { description "Fix anchors for domain-name pattern."; reference "0.3.5"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions and add anchors for domain-name pattern."; reference "0.3.4"; } revision "2019-04-25" { description "Fix regex bug for ipv6-prefix type"; reference "0.3.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.2"; } revision 2017-08-24 { description "Minor formatting fixes."; reference "0.3.1"; } revision 2017-07-06 { description "Add domain-name and host typedefs"; reference "0.3.0"; } revision 2017-04-03 { description "Add ip-version typedef."; reference "0.2.0"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // IPv4 and IPv6 types. typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An IPv4 address in dotted quad notation using the default zone."; } typedef ipv4-address-zoned { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$'; } description "An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv6-address { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone."; } typedef ipv6-address-zoned { type string { pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; oc-ext:posix-pattern // Must support compression through different lengths // therefore this regexp is complex. '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')(%[a-zA-Z0-9_]+)$'; } description "An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name."; } typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$'; } description "An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32)."; } typedef ipv6-prefix { type string { pattern '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; oc-ext:posix-pattern '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,7}:|' + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; } description "An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128)."; } typedef ip-address { type union { type ipv4-address; type ipv6-address; } description "An IPv4 or IPv6 address with no prefix specified."; } typedef ip-prefix { type union { type ipv4-prefix; type ipv6-prefix; } description "An IPv4 or IPv6 prefix."; } typedef ip-version { type enumeration { enum UNKNOWN { value 0; description "An unknown or unspecified version of the Internet protocol."; } enum IPV4 { value 4; description "The IPv4 protocol as defined in RFC 791."; } enum IPV6 { value 6; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; } typedef domain-name { type string { length "1..253"; pattern '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)'; oc-ext:posix-pattern '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.)$'; } description "The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; } typedef host { type union { type ip-address; type domain-name; } description "The host type represents either an unzoned IP address or a DNS domain name."; } typedef as-number { type uint32; description "A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs)."; reference "RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; } typedef dscp { type uint8 { range "0..63"; } description "A differentiated services code point (DSCP) marking within the IP header."; reference "RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers"; } typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required."; reference "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; } typedef port-number { type uint16; description "A 16-bit port number used by a transport protocol such as TCP or UDP."; reference "RFC 768 User Datagram Protocol RFC 793 Transmission Control Protocol"; } typedef uri { type string; description "An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986."; reference "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; } typedef url { type string; description "An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3"; reference "RFC 3986, paragraph 1.1.3"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-inet-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}]=SimpleContainerNode{version=Version[157c3e1e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan-types"; prefix "oc-vlan-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.1.1"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "3.1.1"; } revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } // typedef statements // TODO: typedefs should be defined in a vlan-types.yang file. typedef vlan-id { type uint16 { range 1..4094; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { // range specified as [lower]..[upper] pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { // match cases where the range is specified as x..y.z pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; oc-ext:posix-pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { // match cases where the range is specified as x.y..z pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; oc-ext:posix-pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum ACCESS { description "Access mode VLAN interface (No 802.1q header)"; } enum TRUNK { description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; // TODO: string should be changed to leafref to reference // an existing VLAN. this is not allowed in YANG 1.0 but // is expected to be in YANG 1.1. // type leafref { // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name"; // } } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum PUSH { description "Push a VLAN onto the VLAN stack."; } enum POP { description "Pop a VLAN from the VLAN stack."; } enum SWAP { description "Swap the VLAN at the top of the VLAN stack."; } // TODO: add push-push, pop-pop, push-swap etc } description "Operations that can be performed on a VLAN stack."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-vlan-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=3.1.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[6c977411], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-interfaces { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; prefix if; import ietf-yang-types { prefix yang; } organization "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[7f458122], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[7f458122], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[7f458122], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.336 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-27: doCommit completed 08:15:36.336 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-vlan with version 3.2.0 08:15:36.343 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-openflow with version 0.1.2 to operational datastore 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-28 allocated with snapshot Version[7f458122] 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-28 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow { yang-version "1"; namespace "http://openconfig.net/yang/openflow"; prefix "openflow"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-interfaces { prefix oc-if; } import openconfig-openflow-types { prefix of-types; } import openconfig-system { prefix oc-sys; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for Openflow."; oc-ext:openconfig-version "0.1.2"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes.Initial revision"; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping openflow-controller-config { description "Openflow controller config"; leaf name { type string; description "Name of this Openflow controller. All connections for the same controller need to have the same name."; } } grouping openflow-controller-state { description "Openflow controller state"; } grouping openflow-controllers-top { description "Top-level for the Openflow controllers model"; container controllers { description "Container for the Openflow controllers model"; list controller { key "name"; description "The Openflow Switch connects to all Openflow controllers configured"; leaf name { type leafref { path "../config/name"; } description "The name identifies the controller."; } container config { description "Container for the Openflow controller config."; uses openflow-controller-config; } container state { config false; description "Container for the Openflow controller state."; uses openflow-controller-config; uses openflow-controller-state; } uses openflow-connections-top; } } } grouping openflow-connections-config { description "Configuration data for OpenFlow controller connections"; leaf aux-id { type of-types:auxiliary-id; description "Controller auxiliary ID. Must be 0 for the main controller. One controller may have multiple auxiliary connections as specified by the Openflow protocol. Besides configuring the main controller, it is also possible to configure auxiliary connections. The main controller must have the aux-id set to zero. All others must have an aux-id different from 0."; } leaf priority { type uint8; description "Optional value for servicing auxiliary connections with different priorities."; } leaf address { type oc-inet:ip-address; description "The IP address of the controller."; } leaf port { type oc-inet:port-number; default 6653; description "Controller port to use."; } leaf transport { type of-types:transport; default TCP; description "Controller transport protocol used."; } leaf certificate-id { type string; description "Certificate ID is used for TLS connections. When installed, certificates are associated with an ID. This ID specifies the certificate to use in a TLS connection."; } leaf source-interface { type oc-if:base-interface-ref; description "Optionally specify the source interface for the controller connection."; } } grouping openflow-connections-state { description "Operational state data for OpenFlow controller connections"; leaf connected { type boolean; description "When set to true, indicates the connection between the switch and controller is established."; } } grouping openflow-connections-top { description "Top-level grouping for OpenFlow controller connections"; container connections { description "Enclosing container for list of controller connections"; list connection { key "aux-id"; description "List of connections to the OpenFlow controller. The Openflow switch always connects to configured Openflow controllers. Each controller can have more than one connection, called auxiliary Openflow connections."; leaf aux-id { type leafref { path "../config/aux-id"; } description "Reference to auxiliary id list key"; } container config { description "Configuration data for OpenFlow controller connections"; uses openflow-connections-config; } container state { config false; description "Operational state data for OpenFlow controller connections"; uses openflow-connections-config; uses openflow-connections-state; } } } } grouping openflow-agent-config { description "Openflow agent config"; leaf datapath-id { type of-types:datapath-id; description "Datapath unique ID. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } leaf failure-mode { type of-types:failure-mode; description "Failure mode for Openflow."; } leaf backoff-interval { type uint32; units seconds; description "Openflow agent connection backoff interval."; } leaf max-backoff { type uint32; units seconds; description "Openflow agent max backoff time."; } leaf inactivity-probe { type uint32; units seconds; description "Openflow agent inactivity probe period."; } } grouping openflow-agent-state { description "Openflow agent state"; } grouping openflow-agent-top { description "Top-level for the Openflow agent model"; container agent { description "Container for the Openflow agent model."; container config { description "Container for the Openflow agent config."; uses openflow-agent-config; } container state { config false; description "Container for the Openflow agent state."; uses openflow-agent-config; uses openflow-agent-state; } } } grouping openflow-top { description "Top-level for the Openflow model"; container openflow { description "Container for Openflow model"; uses openflow-controllers-top; uses openflow-agent-top; } } augment "/oc-sys:system" { description "Adding OpenConfig data to the system model"; uses openflow-top; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.2}]} 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-28 : Ready 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-28 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-28 is submitted for execution. 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-28: canCommit Started 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-28 can be committed 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-28: preCommit Started 08:15:36.347 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-28: doCommit Started 08:15:36.347 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[7f458122], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[7f458122], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[7f458122], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[185b5e1b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[185b5e1b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[185b5e1b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.363 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-28: doCommit completed 08:15:36.363 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-openflow with version 0.1.2 08:15:36.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b32da58} unlocked 08:15:36.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b32da58} readied 08:15:36.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b32da58} 08:15:36.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b32da58} completed successfully 08:15:36.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.366 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-extensions with version 2020-06-16 to operational datastore 08:15:36.370 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-29 allocated with snapshot Version[185b5e1b] 08:15:36.370 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-29 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]} 08:15:36.371 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-29 : Ready 08:15:36.371 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-29 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.371 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-29 is submitted for execution. 08:15:36.371 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-29: canCommit Started 08:15:36.371 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-29 can be committed 08:15:36.371 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-29: preCommit Started 08:15:36.371 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-29: doCommit Started 08:15:36.371 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[185b5e1b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[185b5e1b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[185b5e1b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[7af42c4b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[7af42c4b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[7af42c4b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.399 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-29: doCommit completed 08:15:36.399 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-extensions with version 2020-06-16 08:15:36.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@40eeff4f} unlocked 08:15:36.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13e9ebdc} unlocked 08:15:36.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13e9ebdc} readied 08:15:36.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@40eeff4f} readied 08:15:36.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b7cbd6e} unlocked 08:15:36.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@40eeff4f} 08:15:36.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13e9ebdc} 08:15:36.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b7cbd6e} readied 08:15:36.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b7cbd6e} 08:15:36.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@40eeff4f} completed successfully 08:15:36.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@13e9ebdc} completed successfully 08:15:36.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b7cbd6e} completed successfully 08:15:36.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.416 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-platform with version 0.13.0 to operational datastore 08:15:36.426 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-30 allocated with snapshot Version[7af42c4b] 08:15:36.426 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-30 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]} 08:15:36.426 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-30 : Ready 08:15:36.426 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-30 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.426 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-30 is submitted for execution. 08:15:36.426 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-30: canCommit Started 08:15:36.426 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-30 can be committed 08:15:36.426 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-30: preCommit Started 08:15:36.427 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-30: doCommit Started 08:15:36.427 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[7af42c4b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[7af42c4b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[7af42c4b], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.444 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-30: doCommit completed 08:15:36.444 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-platform with version 0.13.0 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: CFG-0 allocated with snapshot Version[453273b6] 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: CFG-0 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]} 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: CFG-0 : Ready 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: CFG-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-31 is submitted for execution. 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-31: canCommit Started 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: CFG-0 can be committed 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-31: preCommit Started 08:15:36.445 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-31: doCommit Started 08:15:36.445 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[453273b6], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to MaterializedContainerNode{version=Version[453273b6], subtreeVersion=Version[4dbaea59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[4dbaea59], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}}} 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-31: doCommit completed 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-31 allocated with snapshot Version[43475874] 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-31 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]} 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-31 : Ready 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-31 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-32 is submitted for execution. 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-32: canCommit Started 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-31 can be committed 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-32: preCommit Started 08:15:36.446 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-32: doCommit Started 08:15:36.446 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[38d03eba], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[38d03eba], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.464 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-32: doCommit completed 08:15:36.464 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree$Node -- Registration RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} added 08:15:36.464 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree$Node -- Registration RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} added 08:15:36.464 [main] INFO org.opendaylight.gnmi.southbound.provider.GnmiSouthboundProvider -- gNMI south-bound has successfully started 08:15:36.464 [main] INFO org.opendaylight.gnmi.southbound.yangmodule.GnmiSouthboundModule -- gNMI Southbound Provider initialized 08:15:36.464 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractDOMDataBroker -- Transactoin chain 0 created, backing store chains {OPERATIONAL=org.opendaylight.mdsal.dom.store.inmemory.DOMStoreTransactionChainImpl@17d4316c, CONFIGURATION=org.opendaylight.mdsal.dom.store.inmemory.DOMStoreTransactionChainImpl@da6f9ed} 08:15:36.465 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-32 allocated with snapshot Version[38d03eba] 08:15:36.465 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-32 Write: /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)streams/stream/stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}]:ImmutableMapEntryNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}], body=[ImmutableLeafNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)description, body=Default XML encoded NETCONF stream}, ImmutableLeafNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name, body=NETCONF}]} 08:15:36.465 [main] DEBUG org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer -- Adding mandatory child /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time 08:15:36.465 [main] DEBUG org.opendaylight.restconf.server.mdsal.Rfc8040StreamSupport -- Stream NETCONF does not have a location, skipping not exposing it through ietf-restconf-monitoring 08:15:36.465 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-32 : Ready 08:15:36.465 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-32: unexpected failure when readying java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:200) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) 08:15:36.465 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-32 is submitted. Modifications: InMemoryDataTreeModification{state=Defunct{threadName=main, cause=java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time}} 08:15:36.465 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-33 is submitted for execution. 08:15:36.465 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-33: canCommit Started 08:15:36.466 [main] WARN org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Tx: DOM-33 Error during phase CAN_COMMIT, starting Abort org.opendaylight.mdsal.common.api.TransactionCommitFailedException: canCommit execution failed at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:42) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18) at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:82) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:37) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.canCommitBlocking(CommitCoordinationTask.java:103) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.call(CommitCoordinationTask.java:70) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:42) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:28) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80) at com.google.common.util.concurrent.DirectExecutorService.execute(DirectExecutorService.java:52) at com.google.common.util.concurrent.Futures.submit(Futures.java:192) at org.opendaylight.yangtools.util.concurrent.FluentFutures.submit(FluentFutures.java:136) at org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker.commit(SerializedDOMDataBroker.java:66) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:200) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ... 84 common frames omitted 08:15:36.466 [main] DEBUG org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry -- Failed to add default stream NETCONF org.opendaylight.mdsal.common.api.TransactionCommitFailedException: canCommit execution failed at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:42) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18) at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:82) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:37) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.canCommitBlocking(CommitCoordinationTask.java:103) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.call(CommitCoordinationTask.java:70) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:42) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:28) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80) at com.google.common.util.concurrent.DirectExecutorService.execute(DirectExecutorService.java:52) at com.google.common.util.concurrent.Futures.submit(Futures.java:192) at org.opendaylight.yangtools.util.concurrent.FluentFutures.submit(FluentFutures.java:136) at org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker.commit(SerializedDOMDataBroker.java:66) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:200) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ... 84 common frames omitted 08:15:36.466 [main] DEBUG org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry -- Model context updated to: EffectiveSchemaContext{modules=[ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-app-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-mdsal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-cert-rpc}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-encrypt-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=aaa-password-service-config}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=augmented-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=example-jukebox}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-certificate-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-force-capabilities}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-yang-storage}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-crypt-hash}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-tls-cipher-suite-algs}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-crypto-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-http-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-ip}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-keystore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-acm}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-netconf-with-defaults}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-network-instance}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-monitoring}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-restconf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-subscribed-notifications}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tcp-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-client}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-common}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-tls-server}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-truststore}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-x509-cert-to-name}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-patch}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-schema-mount}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=network-topology}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=odl-device-notification}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=sal-remote-augment}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=yang-ext}}]} 08:15:36.466 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-33 allocated with snapshot Version[38d03eba] 08:15:36.466 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-33 Write: /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)streams/stream/stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}]:ImmutableMapEntryNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}], body=[ImmutableLeafNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)description, body=Default XML encoded NETCONF stream}, ImmutableLeafNode{name=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name, body=NETCONF}]} 08:15:36.466 [main] DEBUG org.opendaylight.restconf.server.mdsal.Rfc8040StreamSupport -- Stream NETCONF does not have a location, skipping not exposing it through ietf-restconf-monitoring 08:15:36.466 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-33 : Ready 08:15:36.466 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-33: unexpected failure when readying java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.onModelContextUpdated(MdsalRestconfStreamRegistry.java:304) at org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService.registerSchemaContextListener(FixedDOMSchemaService.java:60) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:201) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) 08:15:36.467 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-33 is submitted. Modifications: InMemoryDataTreeModification{state=Defunct{threadName=main, cause=java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time}} 08:15:36.467 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-34 is submitted for execution. 08:15:36.467 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-34: canCommit Started 08:15:36.467 [main] WARN org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Tx: DOM-34 Error during phase CAN_COMMIT, starting Abort org.opendaylight.mdsal.common.api.TransactionCommitFailedException: canCommit execution failed at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:42) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18) at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:82) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:37) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.canCommitBlocking(CommitCoordinationTask.java:103) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.call(CommitCoordinationTask.java:70) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:42) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:28) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80) at com.google.common.util.concurrent.DirectExecutorService.execute(DirectExecutorService.java:52) at com.google.common.util.concurrent.Futures.submit(Futures.java:192) at org.opendaylight.yangtools.util.concurrent.FluentFutures.submit(FluentFutures.java:136) at org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker.commit(SerializedDOMDataBroker.java:66) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.onModelContextUpdated(MdsalRestconfStreamRegistry.java:304) at org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService.registerSchemaContextListener(FixedDOMSchemaService.java:60) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:201) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ... 86 common frames omitted 08:15:36.467 [main] DEBUG org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry -- Failed to add default stream NETCONF org.opendaylight.mdsal.common.api.TransactionCommitFailedException: canCommit execution failed at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:42) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18) at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:82) at org.opendaylight.mdsal.dom.spi.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:37) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.canCommitBlocking(CommitCoordinationTask.java:103) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask.call(CommitCoordinationTask.java:70) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:42) at org.opendaylight.mdsal.dom.broker.CommitCoordinationTask$WithTracker.call(CommitCoordinationTask.java:28) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80) at com.google.common.util.concurrent.DirectExecutorService.execute(DirectExecutorService.java:52) at com.google.common.util.concurrent.Futures.submit(Futures.java:192) at org.opendaylight.yangtools.util.concurrent.FluentFutures.submit(FluentFutures.java:136) at org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker.commit(SerializedDOMDataBroker.java:66) at org.opendaylight.mdsal.dom.spi.DOMForwardedWriteTransaction.commit(DOMForwardedWriteTransaction.java:135) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.putStream(MdsalRestconfStreamRegistry.java:340) at org.opendaylight.restconf.server.spi.AbstractRestconfStreamRegistry.start(AbstractRestconfStreamRegistry.java:508) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.onModelContextUpdated(MdsalRestconfStreamRegistry.java:304) at org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService.registerSchemaContextListener(FixedDOMSchemaService.java:60) at org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry.(MdsalRestconfStreamRegistry.java:201) at org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase.startUp(GnmiITBase.java:226) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787) at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:133) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:83) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:547) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$20(ClassBasedTestDescriptor.java:532) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$2(TestMethodTestDescriptor.java:193) at org.junit.jupiter.engine.descriptor.CallbackSupport.lambda$invokeBeforeCallbacks$0(CallbackSupport.java:34) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.CallbackSupport.invokeBeforeCallbacks(CallbackSupport.java:34) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:191) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:155) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:194) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.IllegalArgumentException: Node (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)stream[{(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)name=NETCONF}] is missing mandatory descendant /(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)replay-log-creation-time at org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:83) at org.opendaylight.yangtools.yang.data.tree.impl.MapEntryModificationStrategy$EnforcingMandatory.mandatoryVerifyValueChildren(MapEntryModificationStrategy.java:35) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:129) at org.opendaylight.yangtools.yang.data.tree.impl.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:120) at org.opendaylight.yangtools.yang.data.tree.impl.ModifiedNode.seal(ModifiedNode.java:320) at org.opendaylight.yangtools.yang.data.tree.impl.AbstractReadyIterator.process(AbstractReadyIterator.java:44) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.runReady(InMemoryDataTreeModification.java:564) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:548) at org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:540) at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ... 86 common frames omitted 08:15:36.467 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree$Node -- Registration RegImpl{closed=false, instance=org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry$1@811fb66} added 08:15:36.467 [main] DEBUG org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree$Node -- Registration RegImpl{closed=false, instance=org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry$1@811fb66} added 08:15:36.467 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4062a939} unlocked 08:15:36.467 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4062a939} readied 08:15:36.467 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4062a939} 08:15:36.467 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4062a939} completed successfully 08:15:36.467 [mdsal-subscription-counters22] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.467 [main] DEBUG org.opendaylight.restconf.server.spi.YangLibraryVersionResource -- Cannot find ietf-yang-library 08:15:36.468 [main] INFO org.opendaylight.restconf.server.RestconfTransportChannelListener -- Initialized with service class org.opendaylight.restconf.server.mdsal.MdsalRestconfServer 08:15:36.468 [main] INFO org.opendaylight.restconf.server.RestconfTransportChannelListener -- Initialized with base path: /rests, default encoding: JSON, default pretty print: false 08:15:36.470 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Connecting device! 08:15:36.470 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:36.475 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND SETTINGS: ack=false settings={MAX_HEADER_LIST_SIZE=8192} 08:15:36.475 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPScheme$CleartextUpgradeHandler -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014]: upgraded to HTTP/2 08:15:36.475 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSessionBootstrap -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] resolved to HTTP/2 semantics 08:15:36.475 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Threadpools for [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] started 08:15:36.476 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:36.476 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:36.476 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:36.477 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND SETTINGS: ack=false settings={HEADER_TABLE_SIZE=16384, ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=16777216, MAX_FRAME_SIZE=16384, MAX_HEADER_LIST_SIZE=393216} 08:15:36.477 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND SETTINGS: ack=true 08:15:36.477 [gnmi-it-group-0] DEBUG io.netty.channel.DefaultChannelPipeline -- Discarded inbound message {HEADER_TABLE_SIZE=16384, ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=16777216, MAX_FRAME_SIZE=16384, MAX_HEADER_LIST_SIZE=393216} that reached at the tail of the pipeline. Please check your pipeline configuration. 08:15:36.477 [gnmi-it-group-0] DEBUG io.netty.channel.DefaultChannelPipeline -- Discarded message pipeline : [HttpToHttp2ConnectionHandler#0, AAAShiroPrincipalService$1#0, ConcurrentRestconfSession#0, DefaultChannelPipeline$TailContext#0]. Channel : [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014]. 08:15:36.477 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=33488897 08:15:36.477 [/127.0.0.1:59014-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-34 allocated with snapshot Version[38d03eba] 08:15:36.477 [/127.0.0.1:59014-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-34 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:36.477 [/127.0.0.1:59014-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-34 : Closed 08:15:36.477 [/127.0.0.1:59014-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-1 allocated with snapshot Version[4dbaea59] 08:15:36.477 [/127.0.0.1:59014-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-1 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:36.477 [/127.0.0.1:59014-http-server-req-0] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-1 : Closed 08:15:36.477 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND SETTINGS: ack=true 08:15:36.477 [/127.0.0.1:59014-http-server-req-0] DEBUG org.opendaylight.restconf.server.api.AbstractServerRequest -- Request NettyServerRequest{uuid=62a2f6b1-63ab-482c-b4cf-e56067bb9c8c, parameters=QueryParameters({}), prettyPrint=org.opendaylight.restconf.api.query.PrettyPrintParam@1314033d} failed org.opendaylight.netconf.databind.RequestException: Request could not be completed because the relevant data model content does not exist at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:582) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:576) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132) at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004) at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:469) at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:119) at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1098) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy.readData(RestconfStrategy.java:576) at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy.getData(MdsalRestconfStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:115) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataGET(MdsalRestconfServer.java:186) at org.opendaylight.restconf.server.PendingDataGet.execute(PendingDataGet.java:52) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:36.479 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=1 headers=DefaultHttp2Headers[:status: 409, content-type: application/yang-data+json, content-length: 242] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:36.479 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=1 padding=0 endStream=true length=242 bytes=7b0a2020226572726f7273223a207b0a20202020226572726f72223a205b0a2020202020207b0a2020202020202020226572726f722d746167223a2022646174... 08:15:36.480 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Adding gnmi device with ID gnmi-node-test on IP ADDRESS:PORT 127.0.0.1:41545 08:15:36.480 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending PUT request with { "network-topology:node" : [{ "node-id": "gnmi-node-test", "gnmi-topology:connection-parameters": { "host": "127.0.0.1", "port": 41545, "connection-type": "INSECURE" }, "extensions-parameters": { "gnmi-parameters": { "use-model-name-prefix": true } } }] } payload to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:36.481 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=3 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: PUT, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test, :scheme: http, accept: application/json, content-type: application/json, content-length: 379, user-agent: Java-http-client/21.0.9] padding=0 endStream=false 08:15:36.481 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND DATA: streamId=3 padding=0 endStream=true length=379 bytes=7b0a20202020226e6574776f726b2d746f706f6c6f67793a6e6f646522203a205b7b0a2020202020202020226e6f64652d6964223a2022676e6d692d6e6f6465... 08:15:36.482 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.AbstractBasicAuthHandler -- UNAUTHORIZED: request has no 'Basic' Authorization header 08:15:36.482 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=3 headers=DefaultHttp2Headers[:status: 401, www-authenticate: BASIC realm="application"] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:36.483 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND RST_STREAM: streamId=3 errorCode=5 08:15:36.483 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=5 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: PUT, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test, :scheme: http, accept: application/json, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, content-length: 379, user-agent: Java-http-client/21.0.9] padding=0 endStream=false 08:15:36.483 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND DATA: streamId=5 padding=0 endStream=true length=379 bytes=7b0a20202020226e6574776f726b2d746f706f6c6f67793a6e6f646522203a205b7b0a2020202020202020226e6f64652d6964223a2022676e6d692d6e6f6465... 08:15:36.483 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:36.483 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:36.483 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:36.483 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:36.483 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:36.483 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:36.483 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:36.484 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:36.484 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing PUT http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:36.484 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of PUT http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-2 allocated with snapshot Version[4dbaea59] 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-2 Exists: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-2 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-2 : Closed 08:15:36.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4609a3c} unlocked 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.yangtools.yang.data.spi.node.impl.ImmutableMapEntryNodeBuilder -- Adding leaf ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology} implied by key (urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology 08:15:36.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4609a3c} readied 08:15:36.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4609a3c} 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: CFG-3 allocated with snapshot Version[4dbaea59] 08:15:36.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4609a3c} completed successfully 08:15:36.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: CFG-3 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology:ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[]}]}]}]} 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: CFG-3 Write: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]} 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: CFG-3 : Ready 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: CFG-3 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-38 is submitted for execution. 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-38: canCommit Started 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: CFG-3 can be committed 08:15:36.485 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-38: preCommit Started 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-38: doCommit Started 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[453273b6], subtreeVersion=Version[4dbaea59], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[4dbaea59], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}}} to MaterializedContainerNode{version=Version[453273b6], subtreeVersion=Version[618092c3], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[4dbaea59], subtreeVersion=Version[618092c3], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[4dbaea59], subtreeVersion=Version[618092c3], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[4dbaea59], subtreeVersion=Version[618092c3], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=ValueNode{version=Version[618092c3], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}}, (urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=SimpleContainerNode{version=Version[618092c3], data=ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]}]}}}, untouched=[ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}}} 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreTreeChangePublisher -- Enqueueing candidates [DefaultDataTreeCandidate{rootPath=/(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], rootNode=DataTreeCandidateNode{modificationType=WRITE, dataAfter=mapEntryNode (urn:TBD:params:xml:ns:yang:network-topology@2013-10-21)node = { leafNode node-id = "gnmi-node-test" containerNode (urn:opendaylight:gnmi:topology@2021-03-16)connection-parameters = { choiceNode security-choice = { leafNode connection-type = "INSECURE" } leafNode host = "127.0.0.1" leafNode port = 41545 } containerNode (urn:opendaylight:gnmi:topology@2021-03-16)extensions-parameters = { containerNode gnmi-parameters = { leafNode use-model-name-prefix = true } } }}}] for registration RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.yangtools.util.concurrent.AbstractBatchingExecutor -- DataTreeChangeListenerQueueMgr + dsName: Submitting DispatcherTask for worker RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.yangtools.util.concurrent.AbstractBatchingExecutor -- DataTreeChangeListenerQueueMgr + dsName: Invoking worker RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} with tasks: [DefaultDataTreeCandidate{rootPath=/(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], rootNode=DataTreeCandidateNode{modificationType=WRITE, dataAfter=mapEntryNode (urn:TBD:params:xml:ns:yang:network-topology@2013-10-21)node = { leafNode node-id = "gnmi-node-test" containerNode (urn:opendaylight:gnmi:topology@2021-03-16)connection-parameters = { choiceNode security-choice = { leafNode connection-type = "INSECURE" } leafNode host = "127.0.0.1" leafNode port = 41545 } containerNode (urn:opendaylight:gnmi:topology@2021-03-16)extensions-parameters = { containerNode gnmi-parameters = { leafNode use-model-name-prefix = true } } }}}] 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Data tree change on gNMI topology triggered 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] INFO org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Received change in gNMI node connection configuration. Node ID: Uri{value=gnmi-node-test} 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] WARN org.opendaylight.gnmi.southbound.device.connection.DeviceConnectionManager -- Node Uri{value=gnmi-node-test} is not registered, not deleting 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-35 allocated with snapshot Version[38d03eba] 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-35 Delete: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-35 : Ready 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-35 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-39 is submitted for execution. 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-39: canCommit Started 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-35 can be committed 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-39: preCommit Started 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-39: doCommit Started 08:15:36.486 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[38d03eba], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[38d03eba], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[38d03eba], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[38d03eba], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.504 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.AbstractDOMStoreTreeChangePublisher -- Skipping unmodified candidate InMemoryDataTreeCandidate{rootPath=/, rootNode=DataTreeCandidateNode{modificationType=UNMODIFIED, oldMeta=MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[38d03eba], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[38d03eba], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}}, newMeta=MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[38d03eba], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[38d03eba], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}}}} 08:15:36.522 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-39: doCommit completed 08:15:36.523 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.gnmi.southbound.device.session.security.KeystoreGnmiSecurityProvider -- Creating Security with insecure connection 08:15:36.524 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Registering callback on node gnmi-node-test connectivity status change READY 08:15:36.525 [/127.0.0.1:59014-http-server-req-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Starting listening on gRPC channel state change for node Uri{value=gnmi-node-test} 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Channel state of node gnmi-node-test changed from UNKNOWN to IDLE. Updating operational datastore... 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-36 allocated with snapshot Version[38d03eba] 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-36 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=IDLE}]}]} 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-36 : Ready 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-36 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-40 is submitted for execution. 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-40: canCommit Started 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-36 can be committed 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-40: preCommit Started 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-40: doCommit Started 08:15:36.527 [nioEventLoopGroup-62-1] WARN io.netty.bootstrap.ServerBootstrap -- Unknown channel option 'SO_BACKLOG' for channel '[id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850]' 08:15:36.526 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[38d03eba], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=SimpleContainerNode{version=Version[38d03eba], data=ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology, body=[ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}]}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[53a825bd], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[53a825bd], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[53a825bd], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[53a825bd], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=SimpleContainerNode{version=Version[53a825bd], data=ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=IDLE}]}]}]}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.544 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-40: doCommit completed 08:15:36.544 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Current session status IDLE 08:15:36.544 [grpc-default-executor-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Channel state of node gnmi-node-test changed from IDLE to CONNECTING. Updating operational datastore... 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-37 allocated with snapshot Version[53a825bd] 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-37 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}]}]} 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-37 : Ready 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-37 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-41 is submitted for execution. 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-41: canCommit Started 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-37 can be committed 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-41: preCommit Started 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-41: doCommit Started 08:15:36.550 [grpc-default-executor-3] DEBUG io.netty.handler.ssl.util.InsecureTrustManagerFactory -- Accepting a server certificate: CN=localhost, OU=Test, O=Test, L=Test, ST=Test, C=NZ 08:15:36.551 [grpc-nio-worker-ELG-65-2] DEBUG io.netty.handler.ssl.SslHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] HANDSHAKEN: protocol:TLSv1.3 cipher suite:TLS_AES_128_GCM_SHA256 08:15:36.551 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND SETTINGS: ack=false settings={ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192} 08:15:36.552 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=983041 08:15:36.545 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[53a825bd], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[53a825bd], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[53a825bd], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[53a825bd], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=SimpleContainerNode{version=Version[53a825bd], data=ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=IDLE}]}]}]}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[7f48d1c], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[7f48d1c], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[7f48d1c], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.563 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-41: doCommit completed 08:15:36.563 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Current session status CONNECTING 08:15:36.553 [nioEventLoopGroup-63-2] DEBUG io.netty.handler.ssl.SslHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] HANDSHAKEN: protocol:TLSv1.3 cipher suite:TLS_AES_128_GCM_SHA256 08:15:36.563 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND SETTINGS: ack=false settings={MAX_CONCURRENT_STREAMS=2147483647, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192} 08:15:36.563 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=983041 08:15:36.564 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND SETTINGS: ack=false settings={MAX_CONCURRENT_STREAMS=2147483647, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192} 08:15:36.564 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND SETTINGS: ack=true 08:15:36.564 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=983041 08:15:36.564 [grpc-default-executor-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Channel state of node gnmi-node-test changed from CONNECTING to READY. Updating operational datastore... 08:15:36.564 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Triggering registered callback on node gnmi-node-test connectivity status change READY 08:15:36.558 [/127.0.0.1:59014-http-server-req-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-38: doCommit completed 08:15:36.564 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Current session status READY 08:15:36.565 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=5 headers=DefaultHttp2Headers[:status: 201, content-length: 0] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:36.566 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND SETTINGS: ack=false settings={ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192} 08:15:36.566 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND SETTINGS: ack=true 08:15:36.566 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND WINDOW_UPDATE: streamId=0 windowSizeIncrement=983041 08:15:36.566 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND SETTINGS: ack=true 08:15:36.567 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND HEADERS: streamId=3 headers=GrpcHttp2OutboundHeaders[:authority: 127.0.0.1:41545, :path: /gnmi.gNMI/Capabilities, :method: POST, :scheme: https, content-type: application/grpc, te: trailers, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:36.567 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND DATA: streamId=3 padding=0 endStream=true length=5 bytes=0000000000 08:15:36.568 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND SETTINGS: ack=true 08:15:36.568 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND HEADERS: streamId=3 headers=GrpcHttp2RequestHeaders[:path: /gnmi.gNMI/Capabilities, :authority: 127.0.0.1:41545, :method: POST, :scheme: https, te: trailers, content-type: application/grpc, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:36.568 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND DATA: streamId=3 padding=0 endStream=true length=5 bytes=0000000000 08:15:36.569 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND PING: ack=false bytes=1234 08:15:36.569 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- capabilities request: { "extension": [] } 08:15:36.569 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiCapabilitiesService -- Received capabilities request 08:15:36.570 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND PING: ack=false bytes=1234 08:15:36.570 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND PING: ack=true bytes=1234 08:15:36.570 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- capabilities response: { "supportedModels": [{ "name": "gnmi-test-aug", "organization": "UNKNOWN-ORGANIZATION", "version": "1.0.0" }, { "name": "gnmi-test-model", "organization": "UNKNOWN-ORGANIZATION", "version": "1.0.0" }, { "name": "iana-if-type", "organization": "IANA", "version": "2023-01-26" }, { "name": "ietf-interfaces", "organization": "IETF NETMOD (Network Modeling) Working Group", "version": "2018-02-20" }, { "name": "ietf-yang-types", "organization": "IETF NETMOD (NETCONF Data Modeling Language) Working Group", "version": "2013-07-15" }, { "name": "openconfig-aaa", "organization": "OpenConfig working group", "version": "0.5.0" }, { "name": "openconfig-aaa-types", "organization": "OpenConfig working group", "version": "0.4.1" }, { "name": "openconfig-alarm-types", "organization": "OpenConfig working group", "version": "0.2.1" }, { "name": "openconfig-alarms", "organization": "OpenConfig working group", "version": "0.3.2" }, { "name": "openconfig-extensions", "organization": "OpenConfig working group", "version": "2020-06-16" }, { "name": "openconfig-if-aggregate", "organization": "OpenConfig working group", "version": "2.4.3" }, { "name": "openconfig-if-ethernet", "organization": "OpenConfig working group", "version": "2.11.0" }, { "name": "openconfig-if-types", "organization": "OpenConfig working group", "version": "0.2.1" }, { "name": "openconfig-inet-types", "organization": "OpenConfig working group", "version": "0.4.0" }, { "name": "openconfig-interfaces", "organization": "OpenConfig working group", "version": "2.5.0" }, { "name": "openconfig-license", "organization": "OpenConfig working group", "version": "0.2.0" }, { "name": "openconfig-messages", "organization": "OpenConfig working group", "version": "0.0.1" }, { "name": "openconfig-openflow", "organization": "OpenConfig working group", "version": "0.1.2" }, { "name": "openconfig-openflow-types", "organization": "OpenConfig working group", "version": "0.1.3" }, { "name": "openconfig-platform", "organization": "OpenConfig working group", "version": "0.13.0" }, { "name": "openconfig-platform-types", "organization": "OpenConfig working group", "version": "1.1.0" }, { "name": "openconfig-procmon", "organization": "OpenConfig working group", "version": "0.4.0" }, { "name": "openconfig-system", "organization": "OpenConfig working group", "version": "0.10.0" }, { "name": "openconfig-system-logging", "organization": "OpenConfig working group", "version": "0.3.1" }, { "name": "openconfig-system-terminal", "organization": "OpenConfig working group", "version": "0.3.1" }, { "name": "openconfig-types", "organization": "OpenConfig working group", "version": "0.6.0" }, { "name": "openconfig-vlan", "organization": "OpenConfig working group", "version": "3.2.0" }, { "name": "openconfig-vlan-types", "organization": "OpenConfig working group", "version": "3.1.1" }, { "name": "openconfig-yang-types", "organization": "OpenConfig working group", "version": "0.3.0" }], "supportedEncodings": ["JSON", "JSON_IETF"], "gNMIVersion": "0.7.0", "extension": [] } 08:15:36.571 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND PING: ack=true bytes=1234 08:15:36.571 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND HEADERS: streamId=3 headers=GrpcHttp2OutboundHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:36.571 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND DATA: streamId=3 padding=0 endStream=false length=1692 bytes=00000006970a2c0a0d676e6d692d746573742d6175671214554e4b4e4f574e2d4f5247414e495a4154494f4e1a05312e302e300a2e0a0f676e6d692d74657374... 08:15:36.571 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND HEADERS: streamId=3 headers=GrpcHttp2OutboundHeaders[grpc-status: 0] padding=0 endStream=true 08:15:36.571 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=3 headers=GrpcHttp2ResponseHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:36.571 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND DATA: streamId=3 padding=0 endStream=false length=1692 bytes=00000006970a2c0a0d676e6d692d746573742d6175671214554e4b4e4f574e2d4f5247414e495a4154494f4e1a05312e302e300a2e0a0f676e6d692d74657374... 08:15:36.571 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND PING: ack=false bytes=1234 08:15:36.572 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=3 headers=GrpcHttp2ResponseHeaders[grpc-status: 0] padding=0 endStream=true 08:15:36.573 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND PING: ack=false bytes=1234 08:15:36.573 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND PING: ack=true bytes=1234 08:15:36.573 [pool-112-thread-3] DEBUG org.opendaylight.gnmi.southbound.device.connection.DeviceConnectionManager -- Received gNMI Capabiltiies response from Uri{value=gnmi-node-test} : supported_models { name: "gnmi-test-aug" organization: "UNKNOWN-ORGANIZATION" version: "1.0.0" } supported_models { name: "gnmi-test-model" organization: "UNKNOWN-ORGANIZATION" version: "1.0.0" } supported_models { name: "iana-if-type" organization: "IANA" version: "2023-01-26" } supported_models { name: "ietf-interfaces" organization: "IETF NETMOD (Network Modeling) Working Group" version: "2018-02-20" } supported_models { name: "ietf-yang-types" organization: "IETF NETMOD (NETCONF Data Modeling Language) Working Group" version: "2013-07-15" } supported_models { name: "openconfig-aaa" organization: "OpenConfig working group" version: "0.5.0" } supported_models { name: "openconfig-aaa-types" organization: "OpenConfig working group" version: "0.4.1" } supported_models { name: "openconfig-alarm-types" organization: "OpenConfig working group" version: "0.2.1" } supported_models { name: "openconfig-alarms" organization: "OpenConfig working group" version: "0.3.2" } supported_models { name: "openconfig-extensions" organization: "OpenConfig working group" version: "2020-06-16" } supported_models { name: "openconfig-if-aggregate" organization: "OpenConfig working group" version: "2.4.3" } supported_models { name: "openconfig-if-ethernet" organization: "OpenConfig working group" version: "2.11.0" } supported_models { name: "openconfig-if-types" organization: "OpenConfig working group" version: "0.2.1" } supported_models { name: "openconfig-inet-types" organization: "OpenConfig working group" version: "0.4.0" } supported_models { name: "openconfig-interfaces" organization: "OpenConfig working group" version: "2.5.0" } supported_models { name: "openconfig-license" organization: "OpenConfig working group" version: "0.2.0" } supported_models { name: "openconfig-messages" organization: "OpenConfig working group" version: "0.0.1" } supported_models { name: "openconfig-openflow" organization: "OpenConfig working group" version: "0.1.2" } supported_models { name: "openconfig-openflow-types" organization: "OpenConfig working group" version: "0.1.3" } supported_models { name: "openconfig-platform" organization: "OpenConfig working group" version: "0.13.0" } supported_models { name: "openconfig-platform-types" organization: "OpenConfig working group" version: "1.1.0" } supported_models { name: "openconfig-procmon" organization: "OpenConfig working group" version: "0.4.0" } supported_models { name: "openconfig-system" organization: "OpenConfig working group" version: "0.10.0" } supported_models { name: "openconfig-system-logging" organization: "OpenConfig working group" version: "0.3.1" } supported_models { name: "openconfig-system-terminal" organization: "OpenConfig working group" version: "0.3.1" } supported_models { name: "openconfig-types" organization: "OpenConfig working group" version: "0.6.0" } supported_models { name: "openconfig-vlan" organization: "OpenConfig working group" version: "3.2.0" } supported_models { name: "openconfig-vlan-types" organization: "OpenConfig working group" version: "3.1.1" } supported_models { name: "openconfig-yang-types" organization: "OpenConfig working group" version: "0.3.0" } supported_encodings: JSON supported_encodings: JSON_IETF gNMI_version: "0.7.0" 08:15:36.573 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND PING: ack=true bytes=1234 08:15:36.573 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-38 allocated with snapshot Version[7f48d1c] 08:15:36.573 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-38 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}] 08:15:36.573 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-38 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-39 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-39 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-39 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-40 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-40 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-40 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-41 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-41 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-41 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-42 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-42 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-42 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-43 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-43 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-43 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-44 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-44 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-44 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-45 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-45 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-45 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-46 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-46 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-46 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-47 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-47 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-47 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-48 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-48 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-48 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-49 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-49 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-49 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-50 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-50 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-50 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-51 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-51 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-inet-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-51 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-52 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-52 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-52 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-53 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-53 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-53 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-54 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-54 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-54 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-55 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-55 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-55 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-56 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-56 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-56 : Closed 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-57 allocated with snapshot Version[7f48d1c] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-57 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}] 08:15:36.574 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-57 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-58 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-58 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.1.0}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-58 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-59 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-59 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-59 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-60 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-60 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-60 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-61 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-61 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-61 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-62 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-62 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-62 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-63 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-63 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-63 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-64 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-64 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-64 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-65 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-65 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.1.1}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-65 : Closed 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-66 allocated with snapshot Version[7f48d1c] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-66 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}] 08:15:36.575 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-66 : Closed 08:15:36.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b305d2c} unlocked 08:15:36.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b305d2c} readied 08:15:36.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b305d2c} 08:15:36.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3b305d2c} completed successfully 08:15:36.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5ff22921} unlocked 08:15:36.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5ff22921} readied 08:15:36.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5ff22921} 08:15:36.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5ff22921} completed successfully 08:15:36.642 [mdsal-subscription-counters18] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.665 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-67 allocated with snapshot Version[7f48d1c] 08:15:36.665 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-67 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models 08:15:36.665 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-67 : Closed 08:15:36.666 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-68 allocated with snapshot Version[7f48d1c] 08:15:36.666 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-68 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models 08:15:36.666 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-68 : Closed 08:15:36.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@31bc995d} unlocked 08:15:36.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@31bc995d} readied 08:15:36.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@31bc995d} 08:15:36.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@31bc995d} completed successfully 08:15:36.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase SOURCE_PRE_LINKAGE 08:15:36.756 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_PRE_LINKAGE started 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase SOURCE_PRE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_PRE_LINKAGE finished 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase SOURCE_LINKAGE 08:15:36.758 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_LINKAGE started 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} matched added key SourceIdentifier [openconfig-extensions@2020-06-16] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-aggregate} matched added key SourceIdentifier [openconfig-if-aggregate@2020-05-01] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} matched added key SourceIdentifier [openconfig-interfaces@2021-04-06] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} matched added key SourceIdentifier [openconfig-interfaces@2021-04-06] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-interfaces} matched added key SourceIdentifier [ietf-interfaces@2018-02-20] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=submodule} criterion LatestRevisionModule{moduleName=openconfig-aaa-tacacs} matched added key SourceIdentifier [openconfig-aaa-tacacs@2020-07-30] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-vlan-types} matched added key SourceIdentifier [openconfig-vlan-types@2020-06-30] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-platform} matched added key SourceIdentifier [openconfig-platform@2021-01-18] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} matched added key SourceIdentifier [openconfig-aaa-types@2018-11-21] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa} found a pre-existing match: SourceIdentifier [openconfig-aaa@2020-07-30]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-aaa}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-terminal} found a pre-existing match: SourceIdentifier [openconfig-system-terminal@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-system-terminal}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarms} found a pre-existing match: SourceIdentifier [openconfig-alarms@2019-07-09]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-alarms}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-messages} found a pre-existing match: SourceIdentifier [openconfig-messages@2018-08-13]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-messages}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-platform-types} matched added key SourceIdentifier [openconfig-platform-types@2021-01-18] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-yang-types} matched added key SourceIdentifier [ietf-yang-types@2013-07-15] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-procmon} matched added key SourceIdentifier [openconfig-procmon@2019-03-15] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-license} matched added key SourceIdentifier [openconfig-license@2020-04-22] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-aaa-types} found a pre-existing match: SourceIdentifier [openconfig-aaa-types@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-aaa-types}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=submodule} criterion LatestRevisionModule{moduleName=openconfig-aaa-radius} matched added key SourceIdentifier [openconfig-aaa-radius@2020-07-30] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-types} matched added key SourceIdentifier [openconfig-types@2019-04-16] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-logging} matched added key SourceIdentifier [openconfig-system-logging@2018-11-21] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system-logging} matched added key SourceIdentifier [openconfig-system-logging@2018-11-21] 08:15:36.759 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-inet-types} found a pre-existing match: SourceIdentifier [openconfig-inet-types@2021-01-07]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-inet-types}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} found a pre-existing match: SourceIdentifier [openconfig-interfaces@2021-04-06]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-interfaces}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-openflow-types} found a pre-existing match: SourceIdentifier [openconfig-openflow-types@2020-06-30]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-openflow-types}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-system} found a pre-existing match: SourceIdentifier [openconfig-system@2020-04-13]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-system}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-interfaces} found a pre-existing match: SourceIdentifier [openconfig-interfaces@2021-04-06]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-interfaces}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-ethernet} matched added key SourceIdentifier [openconfig-if-ethernet@2021-06-09] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-ethernet} matched added key SourceIdentifier [openconfig-if-ethernet@2021-06-09] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarm-types} matched added key SourceIdentifier [openconfig-alarm-types@2018-11-21] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarm-types} matched added key SourceIdentifier [openconfig-alarm-types@2018-11-21] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=gnmi-test-model} found a pre-existing match: SourceIdentifier [gnmi-test-model]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=gnmi-test-model}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=ietf-interfaces} found a pre-existing match: SourceIdentifier [ietf-interfaces@2018-02-20]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=ietf-interfaces}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} matched added key SourceIdentifier [iana-if-type@2023-01-26] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} matched added key SourceIdentifier [iana-if-type@2023-01-26] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=iana-if-type} matched added key SourceIdentifier [iana-if-type@2023-01-26] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-if-types} matched added key SourceIdentifier [openconfig-if-types@2018-11-21] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-extensions} found a pre-existing match: SourceIdentifier [openconfig-extensions@2020-06-16]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-extensions}, refCount=0} 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-yang-types} matched added key SourceIdentifier [openconfig-yang-types@2021-03-02] 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase SOURCE_LINKAGE 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_LINKAGE finished 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase STATEMENT_DEFINITION 08:15:36.760 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase STATEMENT_DEFINITION 08:15:36.761 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase STATEMENT_DEFINITION 08:15:36.761 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase STATEMENT_DEFINITION 08:15:36.761 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase STATEMENT_DEFINITION 08:15:36.761 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase STATEMENT_DEFINITION started 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase STATEMENT_DEFINITION 08:15:36.766 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase STATEMENT_DEFINITION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase STATEMENT_DEFINITION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase STATEMENT_DEFINITION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase STATEMENT_DEFINITION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase STATEMENT_DEFINITION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase STATEMENT_DEFINITION finished 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase FULL_DECLARATION 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase FULL_DECLARATION started 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.767 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.769 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.770 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.771 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.772 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data] got key (test:model)test-data 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.773 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.774 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.775 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.776 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.777 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data] got key (test:model)test-data 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data, (test:model)nested-container] got key (test:model)test-data 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)operational as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@66792138 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-version as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@696189ff 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)catalog-organization as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@5a4a7d8f 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-atomic as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@3b69cabd 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)posix-pattern as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@14364c09 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)regexp-posix as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@71fd0101 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)telemetry-on-change as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@7852acb4 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)origin as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@d9bbd21 08:15:36.778 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} defined statement (http://openconfig.net/yang/openconfig-ext?revision=2020-06-16)openconfig-hashed-value as org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.UnrecognizedStatementSupport@2bebfe9f 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data, (test:model)nested-container] got key (test:model)nested-container 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase FULL_DECLARATION 08:15:36.779 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase FULL_DECLARATION 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase FULL_DECLARATION finished 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase EFFECTIVE_MODEL started 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase EFFECTIVE_MODEL 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.AbstractIfFeatureStatementSupport -- Resolved all feature references in [(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)if-mib] 08:15:36.780 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase EFFECTIVE_MODEL 08:15:36.781 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase EFFECTIVE_MODEL 08:15:36.781 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase EFFECTIVE_MODEL 08:15:36.781 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase EFFECTIVE_MODEL 08:15:36.781 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase EFFECTIVE_MODEL 08:15:36.781 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase EFFECTIVE_MODEL 08:15:36.781 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase EFFECTIVE_MODEL 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase EFFECTIVE_MODEL 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase EFFECTIVE_MODEL 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase EFFECTIVE_MODEL 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase EFFECTIVE_MODEL 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase EFFECTIVE_MODEL 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase EFFECTIVE_MODEL 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase EFFECTIVE_MODEL 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface materialized 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces materialized 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface from (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface materialized 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface materialized 08:15:36.782 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)config from (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)config materialized 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces?revision=2021-04-06)state from (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)state materialized 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces?revision=2021-04-06)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface] got key (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase EFFECTIVE_MODEL 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase EFFECTIVE_MODEL 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase EFFECTIVE_MODEL 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase EFFECTIVE_MODEL 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase EFFECTIVE_MODEL 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config from (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config materialized 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state from (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state materialized 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state] got key (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase EFFECTIVE_MODEL 08:15:36.783 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation] got key (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)components 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/platform?revision=2021-01-18)component from (http://openconfig.net/yang/platform?revision=2021-01-18)component 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/platform?revision=2021-01-18)component materialized 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)component 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Materializing child (http://openconfig.net/yang/platform?revision=2021-01-18)state from (http://openconfig.net/yang/platform?revision=2021-01-18)state 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/platform?revision=2021-01-18)state materialized 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/platform?revision=2021-01-18)components, (http://openconfig.net/yang/platform?revision=2021-01-18)component, (http://openconfig.net/yang/platform?revision=2021-01-18)state] got key (http://openconfig.net/yang/platform?revision=2021-01-18)state 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(http://openconfig.net/yang/system?revision=2020-04-13)system] got key (http://openconfig.net/yang/system?revision=2020-04-13)system 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase EFFECTIVE_MODEL 08:15:36.784 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase EFFECTIVE_MODEL finished 08:15:36.785 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=2} 08:15:36.785 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=2} 08:15:36.785 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:36.785 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=1} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=2} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=1} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=1} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=1} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=1} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=1} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/messages?revision=2018-08-13)service]} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=1} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=0} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=0} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=0} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)message} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config} 08:15:36.786 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=2} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=2} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity]} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=2} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=2} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=2} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity]} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=1} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)host]} 08:15:36.787 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=0} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)selector, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)selectors, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)console, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-server, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-servers, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)logging-top, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=SWEEPING} 08:15:36.788 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)message, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)debug-service, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)debug-entries, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)messages-top, refCount=SWEEPING} 08:15:36.789 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=1} 08:15:36.790 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=2} 08:15:36.790 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=2} 08:15:36.790 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=2} 08:15:36.790 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.790 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=1} 08:15:36.790 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=1} 08:15:36.790 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state} 08:15:36.790 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)member, refCount=0} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=2} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=2} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=1} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=1} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=1} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=0} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=2} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=2} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=2} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=2} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=1} 08:15:36.791 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=2} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=1} 08:15:36.792 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)index]} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=0} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)name]} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)index]} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.793 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=1} 08:15:36.794 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-control-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-pause-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-oversize-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-undersize-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-jabber-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-fragment-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-8021q-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-crc-errors, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-block-errors, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-carrier-errors, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-interrupted-tx, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-late-collision, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-errors-rx, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-single-collision, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-symbol-error, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-maxsize-exceeded, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-control-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-pause-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-8021q-frames, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-errors-tx, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=1} 08:15:36.795 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=1} 08:15:36.796 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=1} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=6} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=6} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=6} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=1} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=1} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=1} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=5} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=5} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=5} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=4} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=4} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=4} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=3} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=3} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=3} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=2} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=2} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=2} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)stat-interval-state, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-max-time, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 7 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg-min-max-instant-stats-pct, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface-ref, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)description, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)up, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)down, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)hold-time, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-change, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)management, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)cpu, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unicast-pkts, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-broadcast-pkts, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-multicast-pkts, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-unknown-protos, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-unicast-pkts, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-broadcast-pkts, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-multicast-pkts, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)carrier-transitions, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)last-clear, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)index, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, refCount=SWEEPING} 08:15:36.798 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)mac-address, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)standalone-link-training, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)duplex-mode, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-control-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-pause-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-oversize-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-undersize-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-jabber-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-fragment-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-8021q-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-crc-errors, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-block-errors, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-carrier-errors, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-interrupted-tx, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-late-collision, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-mac-errors-rx, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-single-collision, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-symbol-error, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)in-maxsize-exceeded, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-control-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-pause-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-8021q-frames, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)out-mac-errors-tx, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)counters, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state, refCount=SWEEPING} 08:15:36.800 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)name, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)status, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)member, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)members, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)trunk-vlans, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-ids, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)low-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)high-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-ids, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-ids, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-low-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)inner-high-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-low-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)outer-high-vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged-list, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)single-tagged-range, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-list, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-outer-list, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-range, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-outer-range, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)double-tagged-inner-outer-range, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)match, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)ingress-mapping, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-stack-action, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan-id, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)tpid, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)egress-mapping, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)vlan, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/vlan?revision=2019-04-16)routed-vlan, refCount=SWEEPING} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=2} 08:15:36.801 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=2} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)address]} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=1} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received} 08:15:36.802 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type]} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=2} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type]} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=1} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type} 08:15:36.803 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=2} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)username]} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=1} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)name]} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=0} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config} 08:15:36.804 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)tacacs, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)counters, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)radius, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server-group, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server-groups, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)server, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)servers, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-user, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)user, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)users, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)events, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)events, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)aaa-top, refCount=SWEEPING} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=4} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=4} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=4} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=3} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=3} 08:15:36.805 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=3} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=2} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=2} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=2} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=2} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=2} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=2} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=SWEEPING} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=SWEEPING} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=SWEEPING} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=SWEEPING} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=SWEEPING} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)system-ssh-server-top, refCount=SWEEPING} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=SWEEPING} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)system-telnet-server-top, refCount=SWEEPING} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=2} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=1} 08:15:36.806 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=SWEEPING} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=SWEEPING} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=SWEEPING} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)instant, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)avg, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)interval, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min-time, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max-time, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=2} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)instant, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)avg, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)min, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)max, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)interval, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)min-time, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)max-time, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)available, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)utilized, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:36.807 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=0} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)memory} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)temperature} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)equipment-failure, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)equipment-mismatch, refCount=1} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)chassis} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)port} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)power-supply} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fan} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fabric} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)storage} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)cpu} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)integrated-circuit} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)backplane} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-module} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)instant, refCount=SWEEPING} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)avg, refCount=SWEEPING} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)min, refCount=SWEEPING} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform-types?revision=2021-01-18)max, refCount=SWEEPING} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)value, refCount=SWEEPING} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)configurable, refCount=SWEEPING} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:36.808 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)property, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)properties, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)subcomponent, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)subcomponents, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)type, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)id, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)location, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)description, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-name, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)mfg-date, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)hardware-version, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)firmware-version, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-version, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)serial-no, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)part-no, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)removable, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)oper-status, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)empty, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)parent, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-status, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-threshold, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)alarm-severity, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)allocated-power, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)used-power, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)temperature, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)available, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)utilized, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)memory, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)chassis, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)port, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)power-supply, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fan, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)fabric, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)storage, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)cpu, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)integrated-circuit, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)backplane, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)software-module, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)name, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)config, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 7 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)state, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)component, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/platform?revision=2021-01-18)components, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)grouping}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)alarms-top, refCount=SWEEPING} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(test:aug)name]} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)name, refCount=1} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)name, refCount=1} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)type, refCount=1} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)mtu, refCount=1} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:model)augmented-data, refCount=1} 08:15:36.809 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(test:aug)interface, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=2} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=2} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=2} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=2} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=2} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=2} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=2} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=2} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)address]} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)hostname]} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address} 08:15:36.810 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=2} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)key-id]} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)address]} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)version} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)address} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)port} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)version} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved, refCount=1} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=8} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=8} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=8} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=8} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=8} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=8} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=8} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=7} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=7} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=7} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=7} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=7} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=7} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=7} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=6} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=6} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=6} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=6} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=6} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=6} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=6} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=5} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=5} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=5} 08:15:36.811 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=5} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=5} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=5} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=5} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=4} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=4} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=4} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=4} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=4} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=4} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=4} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=3} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=3} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=3} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=3} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=3} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=3} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=3} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)instant, refCount=SWEEPING} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)avg, refCount=SWEEPING} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min, refCount=SWEEPING} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max, refCount=SWEEPING} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openconfig-types?revision=2019-04-16)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)instant, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)avg, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)interval, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)min-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)max-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=2} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time, refCount=1} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name} 08:15:36.812 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)search} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: SlimLeafListEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)search} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)ssh-server, refCount=SWEEPING} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 7 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)config, refCount=SWEEPING} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 9 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)state, refCount=SWEEPING} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)protocol-version, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)telnet-server, refCount=SWEEPING} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 6 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)config, refCount=SWEEPING} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 8 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)state, refCount=SWEEPING} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)enable, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)timeout, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)rate-limit, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/terminal?revision=2018-11-21)session-limit, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)logging, refCount=SWEEPING} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)config, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)state, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity], refCount=2} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=2} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=2} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)host], refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)host, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)source-address, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)remote-port, refCount=1} 08:15:36.813 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, (http://openconfig.net/yang/system/logging?revision=2018-11-21)severity], refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)facility, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/logging?revision=2018-11-21)severity, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 11 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)aaa, refCount=SWEEPING} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)config, refCount=SWEEPING} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)state, refCount=SWEEPING} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)accounting-method, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type], refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)record, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authorization-method, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type], refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)event-type, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)authentication-method, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-username, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)admin-password-hashed, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)username], refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)username, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)password-hashed, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)ssh-key, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)role, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)name], refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)type, refCount=1} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)address], refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=2} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)name, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)address, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-opens, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-closes, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-aborts, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-failures, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)connection-timeouts, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-sent, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)messages-received, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)errors-received, refCount=3} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=5} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=5} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=5} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=5} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)port, refCount=5} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=5} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=5} 08:15:36.814 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=5} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=5} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=5} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=5} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=5} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=5} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=5} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)auth-port, refCount=3} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)acct-port, refCount=3} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key, refCount=3} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)secret-key-hashed, refCount=3} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)source-address, refCount=3} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retransmit-attempts, refCount=3} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)retried-access-requests, refCount=7} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-accepts, refCount=7} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)access-rejects, refCount=7} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/aaa?revision=2020-07-30)timeout-access-requests, refCount=7} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=0} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)index]} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)index} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)total} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)user} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=0} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid], refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)alarms, refCount=SWEEPING} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)alarm, refCount=SWEEPING} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/alarms?revision=2019-07-09)id], refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=SWEEPING} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)config, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)config, refCount=SWEEPING} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 10 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)state, refCount=SWEEPING} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)id, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)resource, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)text, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)time-created, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)severity, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/alarms?revision=2019-07-09)type-id, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 5 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)messages, refCount=SWEEPING} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)config, refCount=SWEEPING} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 6 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)state, refCount=SWEEPING} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msg, refCount=3} 08:15:36.815 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)priority, refCount=3} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)app-name, refCount=3} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)procid, refCount=3} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)msgid, refCount=3} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)severity, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/messages?revision=2018-08-13)service], refCount=2} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=2} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=3} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=3} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)service, refCount=3} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/messages?revision=2018-08-13)enabled, refCount=3} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=2} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=2} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=2} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/license?revision=2020-04-22)license-id]} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)active} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)config, refCount=0} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)active} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)description} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)key}, argument=[(http://openconfig.net/yang/license?revision=2020-04-22)license-id], refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=1} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=0} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.816 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)message} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)total} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)user} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.817 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)state} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)config} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: RegularContainerEffectiveStatement{argument=(http://openconfig.net/yang/system?revision=2020-04-13)counters} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=2} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=2} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=2} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=2} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=2} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=2} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=2} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=2} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id]} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=0} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing unchanged substatements of: SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=0} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing context-independent: EmptyLeafEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:36.818 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing after substatement check: EmptyContainerEffectiveStatement{argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=1} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=4} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=4} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id]} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=5} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing substatements of: InferredStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=7} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)state, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)process, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)processes, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)pid, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)name, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)args, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)start-time, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-user, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-usage-system, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)cpu-utilization, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-usage, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system/procmon?revision=2019-03-15)memory-utilization, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-data, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)active, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)description, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)issue-date, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expiration-date, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)in-use, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)expired, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)valid, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license-id, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)config, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)state, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)licenses, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/license?revision=2020-04-22)license, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)timezone-name, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)clock, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)domain-name, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)login-banner, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)motd-banner, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)current-datetime, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)boot-time, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)search, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)alias, refCount=SWEEPING} 08:15:36.819 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv4-address, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf-list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ipv6-address, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hostname, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)host-entry, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)host-entries, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)server, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)servers, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)dns, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)port, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)version, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)association-type, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)iburst, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)prefer, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)stratum, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-delay, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)root-dispersion, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)offset, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)poll-interval, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)address, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)server, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)servers, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-type, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-value, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)key-id, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-key, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-keys, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enabled, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp-source-address, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)enable-ntp-auth, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)auth-mismatch, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)ntp, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)physical, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)reserved, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)memory, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)total, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)user, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)kernel, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)nice, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)idle, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)wait, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)hardware-interrupt, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)software-interrupt, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)index, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)cpu, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)cpus, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 14 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/system?revision=2020-04-13)system, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)name, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)controller, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)controllers, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)priority, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)address, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)port, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)transport, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)certificate-id, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)source-interface, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connected, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)aux-id, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)list}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connection, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)connections, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)datapath-id, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)failure-mode, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)backoff-interval, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)max-backoff, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)inactivity-probe, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 2 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)config, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 4 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)state, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 1 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)agent, refCount=SWEEPING} 08:15:36.820 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 3 children left to sweep from SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)container}, argument=(http://openconfig.net/yang/openflow?revision=2018-11-21)openflow, refCount=SWEEPING} 08:15:36.821 [pool-112-thread-3] DEBUG org.opendaylight.gnmi.southbound.schema.impl.SchemaContextHolderImpl -- Schema context created [ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-aug}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=gnmi-test-model}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=iana-if-type}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=ietf-yang-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-aaa-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarm-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-alarms}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-extensions}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-aggregate}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-ethernet}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-if-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-inet-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-interfaces}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-license}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-messages}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-openflow-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-platform-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-procmon}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-logging}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-system-terminal}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-vlan-types}}, ModuleEffectiveStatementImpl{argument=Unqualified{localName=openconfig-yang-types}}] 08:15:36.822 [pool-112-thread-3] INFO org.opendaylight.gnmi.southbound.mountpoint.GnmiMountPointRegistrator -- Mount point for node gnmi-node-test created: {closed=false, instance=org.opendaylight.mdsal.dom.spi.SimpleDOMMountPoint@40a270c5} 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-69 allocated with snapshot Version[7f48d1c] 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-69 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}]}]} 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-69 : Ready 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-69 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-73 is submitted for execution. 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-73: canCommit Started 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-69 can be committed 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-73: preCommit Started 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-73: doCommit Started 08:15:36.822 [pool-112-thread-3] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[7f48d1c], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[7f48d1c], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[7f48d1c], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[7f48d1c], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[5c330d27], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[5c330d27], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[7f48d1c], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[5c330d27], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.841 [pool-112-thread-3] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-73: doCommit completed 08:15:36.841 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-70 allocated with snapshot Version[5c330d27] 08:15:36.841 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-70 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}]}]} 08:15:36.841 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-70 : Ready 08:15:36.841 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-70 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:36.841 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-74 is submitted for execution. 08:15:36.841 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-74: canCommit Started 08:15:36.841 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-70 can be committed 08:15:36.841 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-74: preCommit Started 08:15:36.842 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-74: doCommit Started 08:15:36.842 [pool-112-thread-2] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[5c330d27], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[5c330d27], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[5c330d27], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[7f48d1c], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=CONNECTING}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[5c330d27], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[375226c9], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[375226c9], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[5c330d27], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:36.859 [pool-112-thread-2] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-74: doCommit completed 08:15:36.860 [pool-112-thread-1] INFO org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Connection with node Uri{value=gnmi-node-test} established successfully 08:15:37.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@232bc71a} unlocked 08:15:37.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@232bc71a} readied 08:15:37.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@232bc71a} 08:15:37.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@232bc71a} completed successfully 08:15:37.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1acb376e} unlocked 08:15:37.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1acb376e} readied 08:15:37.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1acb376e} 08:15:37.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1acb376e} completed successfully 08:15:37.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@543ebe37} unlocked 08:15:37.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@543ebe37} readied 08:15:37.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@543ebe37} 08:15:37.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@543ebe37} completed successfully 08:15:37.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@11da39c} unlocked 08:15:37.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@11da39c} readied 08:15:37.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@11da39c} 08:15:37.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@11da39c} completed successfully 08:15:37.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7cf3b7b2} unlocked 08:15:37.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7cf3b7b2} readied 08:15:37.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7cf3b7b2} 08:15:37.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7cf3b7b2} completed successfully 08:15:37.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3f408f05} unlocked 08:15:37.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3f408f05} readied 08:15:37.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3f408f05} 08:15:37.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3f408f05} completed successfully 08:15:37.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1eae51dc} unlocked 08:15:37.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1eae51dc} readied 08:15:37.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1eae51dc} 08:15:37.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1eae51dc} completed successfully 08:15:37.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72c300d6} unlocked 08:15:37.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72c300d6} readied 08:15:37.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72c300d6} 08:15:37.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72c300d6} completed successfully 08:15:37.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@136c771b} unlocked 08:15:37.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@136c771b} readied 08:15:37.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@136c771b} 08:15:37.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@136c771b} completed successfully 08:15:37.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@28efead4} unlocked 08:15:37.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@28efead4} readied 08:15:37.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@28efead4} 08:15:37.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@28efead4} completed successfully 08:15:37.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@44236ea4} unlocked 08:15:37.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@44236ea4} readied 08:15:37.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@44236ea4} 08:15:37.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@44236ea4} completed successfully 08:15:37.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e0c1346} unlocked 08:15:37.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e0c1346} readied 08:15:37.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e0c1346} 08:15:37.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e0c1346} completed successfully 08:15:37.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:37.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5ea87d33} unlocked 08:15:37.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5ea87d33} readied 08:15:37.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5ea87d33} 08:15:37.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5ea87d33} completed successfully 08:15:37.886 [mdsal-subscription-counters5] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@9c69578} unlocked 08:15:38.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@9c69578} readied 08:15:38.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@9c69578} 08:15:38.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@9c69578} completed successfully 08:15:38.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@56cf8caa} unlocked 08:15:38.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@56cf8caa} readied 08:15:38.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@56cf8caa} 08:15:38.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@56cf8caa} completed successfully 08:15:38.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@18973316} unlocked 08:15:38.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@18973316} readied 08:15:38.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@18973316} 08:15:38.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@18973316} completed successfully 08:15:38.405 [mdsal-subscription-counters9] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@54b84d2} unlocked 08:15:38.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@54b84d2} readied 08:15:38.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@54b84d2} 08:15:38.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@54b84d2} completed successfully 08:15:38.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@381bbc56} unlocked 08:15:38.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@381bbc56} readied 08:15:38.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@381bbc56} 08:15:38.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@381bbc56} completed successfully 08:15:38.405 [mdsal-subscription-counters16] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@580b2667} unlocked 08:15:38.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@580b2667} readied 08:15:38.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@580b2667} 08:15:38.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@580b2667} completed successfully 08:15:38.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@df5773e} unlocked 08:15:38.485 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@df5773e} readied 08:15:38.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@df5773e} 08:15:38.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@df5773e} completed successfully 08:15:38.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.567 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/gnmi-topology:node-state/node-status 08:15:38.568 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=7 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/gnmi-topology:node-state/node-status, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:38.569 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:38.569 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:38.569 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:38.569 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:38.569 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:38.569 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:38.569 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:38.569 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:38.569 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/gnmi-topology:node-state/node-status 08:15:38.569 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/gnmi-topology:node-state/node-status 08:15:38.570 [/127.0.0.1:59014-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-71 allocated with snapshot Version[375226c9] 08:15:38.570 [/127.0.0.1:59014-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-71 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]/(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state/node-status 08:15:38.570 [/127.0.0.1:59014-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-71 : Closed 08:15:38.570 [/127.0.0.1:59014-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-4 allocated with snapshot Version[618092c3] 08:15:38.570 [/127.0.0.1:59014-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-4 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]/(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state/node-status 08:15:38.570 [/127.0.0.1:59014-http-server-req-2] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-4 : Closed 08:15:38.571 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=7 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 37] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:38.571 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=7 padding=0 endStream=true length=37 bytes=7b22676e6d692d746f706f6c6f67793a6e6f64652d737461747573223a225245414459227d 08:15:38.572 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Check node gnmi-node-test connection status response: READY 08:15:38.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@129bcd23} unlocked 08:15:38.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@129bcd23} readied 08:15:38.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@129bcd23} 08:15:38.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@129bcd23} completed successfully 08:15:38.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@33b543e5} unlocked 08:15:38.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@33b543e5} readied 08:15:38.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@33b543e5} 08:15:38.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@33b543e5} completed successfully 08:15:38.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:38.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6a813c55} unlocked 08:15:38.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6a813c55} readied 08:15:38.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6a813c55} 08:15:38.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6a813c55} completed successfully 08:15:38.699 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@f9dc45f} unlocked 08:15:39.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@f9dc45f} readied 08:15:39.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@f9dc45f} 08:15:39.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@f9dc45f} completed successfully 08:15:39.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43a3f25a} unlocked 08:15:39.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43a3f25a} readied 08:15:39.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43a3f25a} 08:15:39.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43a3f25a} completed successfully 08:15:39.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5a903ba0} unlocked 08:15:39.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5a903ba0} readied 08:15:39.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5a903ba0} 08:15:39.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5a903ba0} completed successfully 08:15:39.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3990d733} unlocked 08:15:39.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3990d733} readied 08:15:39.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3990d733} 08:15:39.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3990d733} completed successfully 08:15:39.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@584e4362} unlocked 08:15:39.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@584e4362} readied 08:15:39.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@584e4362} 08:15:39.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@584e4362} completed successfully 08:15:39.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4234b13} unlocked 08:15:39.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4234b13} readied 08:15:39.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4234b13} 08:15:39.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4234b13} completed successfully 08:15:39.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5f352d0c} unlocked 08:15:39.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5f352d0c} readied 08:15:39.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5f352d0c} 08:15:39.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5f352d0c} completed successfully 08:15:39.320 [mdsal-subscription-counters8] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@60235096} unlocked 08:15:39.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@60235096} readied 08:15:39.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@60235096} 08:15:39.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@60235096} completed successfully 08:15:39.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4adc4aa3} unlocked 08:15:39.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4adc4aa3} readied 08:15:39.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4adc4aa3} 08:15:39.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4adc4aa3} completed successfully 08:15:39.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5439eb38} unlocked 08:15:39.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5439eb38} readied 08:15:39.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5439eb38} 08:15:39.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5439eb38} completed successfully 08:15:39.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2212e1fe} unlocked 08:15:39.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2212e1fe} readied 08:15:39.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2212e1fe} 08:15:39.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2212e1fe} completed successfully 08:15:39.718 [mdsal-subscription-counters12] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@584fb2ca} unlocked 08:15:39.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@584fb2ca} readied 08:15:39.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@584fb2ca} 08:15:39.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@584fb2ca} completed successfully 08:15:39.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:39.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@706e6232} unlocked 08:15:39.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@706e6232} readied 08:15:39.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@706e6232} 08:15:39.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@706e6232} completed successfully 08:15:39.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6b15372c} unlocked 08:15:40.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6b15372c} readied 08:15:40.196 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6b15372c} 08:15:40.197 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6b15372c} completed successfully 08:15:40.197 [mdsal-subscription-counters7] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5e3d26a1} unlocked 08:15:40.364 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5e3d26a1} readied 08:15:40.365 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5e3d26a1} 08:15:40.365 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5e3d26a1} completed successfully 08:15:40.365 [mdsal-subscription-counters14] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.405 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4f30ccf6} unlocked 08:15:40.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4f30ccf6} readied 08:15:40.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4f30ccf6} 08:15:40.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4f30ccf6} completed successfully 08:15:40.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7bc1064e} unlocked 08:15:40.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7bc1064e} readied 08:15:40.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7bc1064e} 08:15:40.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@65169dc4} unlocked 08:15:40.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7bc1064e} completed successfully 08:15:40.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@65169dc4} readied 08:15:40.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@65169dc4} 08:15:40.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@65169dc4} completed successfully 08:15:40.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36cffee} unlocked 08:15:40.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36cffee} readied 08:15:40.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36cffee} 08:15:40.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@36cffee} completed successfully 08:15:40.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@77692248} unlocked 08:15:40.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@77692248} readied 08:15:40.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@77692248} 08:15:40.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@77692248} completed successfully 08:15:40.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.573 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces 08:15:40.574 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=9 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.575 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:40.575 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:40.575 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:40.575 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:40.575 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:40.575 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:40.575 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:40.575 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:40.575 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces 08:15:40.575 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces 08:15:40.576 [/127.0.0.1:59014-http-server-req-3] DEBUG org.opendaylight.restconf.server.spi.YangLibraryVersionResource -- Cannot find yang-library-version java.lang.IllegalArgumentException: Module for QNameModule{ns=urn:ietf:params:xml:ns:yang:ietf-restconf, rev=2017-01-26} not found at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.enterYangData(SchemaInferenceStack.java:567) at org.opendaylight.restconf.server.spi.YangLibraryVersionResource.of(YangLibraryVersionResource.java:50) at org.opendaylight.restconf.server.mdsal.MdsalServerStrategy.(MdsalServerStrategy.java:37) at org.opendaylight.restconf.server.mdsal.MdsalMountPointResolver.resolveMountPoint(MdsalMountPointResolver.java:77) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.resolveStrategy(AbstractServerStrategy.java:385) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataGET(MdsalRestconfServer.java:181) at org.opendaylight.restconf.server.PendingDataGet.execute(PendingDataGet.java:52) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:40.576 [/127.0.0.1:59014-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.codecs.YangInstanceIdentifierToPathCodec -- Resulting gNMI Path of identifier /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces is elem { name: "openconfig-interfaces:interfaces" } 08:15:40.577 [/127.0.0.1:59014-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Sending gNMI GetRequest: path { elem { name: "openconfig-interfaces:interfaces" } } type: STATE encoding: JSON_IETF 08:15:40.578 [/127.0.0.1:59014-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.transactions.ReadOnlyTx -- Closing ReadOnlyTx resources for node: [gnmi-node-test] 08:15:40.578 [/127.0.0.1:59014-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.codecs.YangInstanceIdentifierToPathCodec -- Resulting gNMI Path of identifier /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces is elem { name: "openconfig-interfaces:interfaces" } 08:15:40.578 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND HEADERS: streamId=5 headers=GrpcHttp2OutboundHeaders[:authority: 127.0.0.1:41545, :path: /gnmi.gNMI/Get, :method: POST, :scheme: https, content-type: application/grpc, te: trailers, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:40.578 [/127.0.0.1:59014-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Sending gNMI GetRequest: path { elem { name: "openconfig-interfaces:interfaces" } } type: CONFIG encoding: JSON_IETF 08:15:40.578 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND DATA: streamId=5 padding=0 endStream=true length=47 bytes=000000002a12241a220a206f70656e636f6e6669672d696e74657266616365733a696e746572666163657318022804 08:15:40.578 [/127.0.0.1:59014-http-server-req-3] DEBUG org.opendaylight.gnmi.southbound.mountpoint.transactions.ReadOnlyTx -- Closing ReadOnlyTx resources for node: [gnmi-node-test] 08:15:40.579 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND HEADERS: streamId=7 headers=GrpcHttp2OutboundHeaders[:authority: 127.0.0.1:41545, :path: /gnmi.gNMI/Get, :method: POST, :scheme: https, content-type: application/grpc, te: trailers, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:40.579 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND DATA: streamId=7 padding=0 endStream=true length=47 bytes=000000002a12241a220a206f70656e636f6e6669672d696e74657266616365733a696e746572666163657318012804 08:15:40.579 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND HEADERS: streamId=5 headers=GrpcHttp2RequestHeaders[:path: /gnmi.gNMI/Get, :authority: 127.0.0.1:41545, :method: POST, :scheme: https, te: trailers, content-type: application/grpc, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:40.580 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND DATA: streamId=5 padding=0 endStream=true length=47 bytes=000000002a12241a220a206f70656e636f6e6669672d696e74657266616365733a696e746572666163657318022804 08:15:40.580 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND HEADERS: streamId=7 headers=GrpcHttp2RequestHeaders[:path: /gnmi.gNMI/Get, :authority: 127.0.0.1:41545, :method: POST, :scheme: https, te: trailers, content-type: application/grpc, user-agent: grpc-java-netty/1.75.0, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:40.580 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND DATA: streamId=7 padding=0 endStream=true length=47 bytes=000000002a12241a220a206f70656e636f6e6669672d696e74657266616365733a696e746572666163657318012804 08:15:40.581 [grpc-default-executor-3] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- GetRequest received: { "path": [{ "element": [], "origin": "", "elem": [{ "name": "openconfig-interfaces:interfaces", "key": { } }], "target": "" }], "type": "CONFIG", "encoding": "JSON_IETF", "useModels": [], "extension": [] } 08:15:40.581 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- GetRequest received: { "path": [{ "element": [], "origin": "", "elem": [{ "name": "openconfig-interfaces:interfaces", "key": { } }], "target": "" }], "type": "STATE", "encoding": "JSON_IETF", "useModels": [], "extension": [] } 08:15:40.582 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: DOM-STATE-2 allocated with snapshot Version[3032b238] 08:15:40.582 [grpc-default-executor-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: DOM-CFG-2 allocated with snapshot Version[7fa7c4bc] 08:15:40.582 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: DOM-STATE-2 Read: /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:40.582 [grpc-default-executor-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: DOM-CFG-2 Read: /(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:40.582 [grpc-default-executor-3] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: DOM-CFG-2 : Closed 08:15:40.582 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: DOM-STATE-2 : Closed 08:15:40.582 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:40.582 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:40.582 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:40.582 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)counters 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter$OrderedNormalizedNodeWriter -- Skipping key child ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=eth3} 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)config 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter$OrderedNormalizedNodeWriter -- Skipping key child ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0} 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)state 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter$OrderedNormalizedNodeWriter -- Skipping key child ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0} 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:40.583 [grpc-default-executor-3] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)config 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:40.583 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)state 08:15:40.584 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- GetResponse ready: { "notification": [{ "timestamp": "1766304940584", "alias": "", "update": [{ "path": { "element": [], "origin": "", "elem": [{ "name": "openconfig-interfaces:interfaces", "key": { } }], "target": "" }, "val": { "jsonIetfVal": "eyJvcGVuY29uZmlnLWludGVyZmFjZXM6aW50ZXJmYWNlcyI6eyJpbnRlcmZhY2UiOlt7Im5hbWUiOiJicjAiLCJzdGF0ZSI6eyJpZmluZGV4IjoxLCJtdHUiOjEwMCwibG9vcGJhY2stbW9kZSI6ZmFsc2UsIm9wZXItc3RhdHVzIjoiRE9XTiIsImNvdW50ZXJzIjp7ImluLXBrdHMiOiIxMDEiLCJvdXQtb2N0ZXRzIjoiMTA1Iiwib3V0LXBrdHMiOiIxMDYiLCJpbi1vY3RldHMiOiIxMDAiLCJvdXQtZGlzY2FyZHMiOiIxMDciLCJpbi1mY3MtZXJyb3JzIjoiMTA0Iiwib3V0LWVycm9ycyI6IjEwOCIsImluLWVycm9ycyI6IjEwMyIsImluLWRpc2NhcmRzIjoiMTAyIn0sIm5hbWUiOiJicjAiLCJlbmFibGVkIjpmYWxzZSwibG9naWNhbCI6dHJ1ZSwidHlwZSI6Im9wZW5jb25maWctaWYtdHlwZXM6SUZfRVRIRVJORVQiLCJhZG1pbi1zdGF0dXMiOiJVUCJ9LCJvcGVuY29uZmlnLWlmLWFnZ3JlZ2F0ZTphZ2dyZWdhdGlvbiI6eyJzdGF0ZSI6eyJsYWctdHlwZSI6IkxBQ1AiLCJtZW1iZXIiOlsiYnIwIl0sImxhZy1zcGVlZCI6MjAsIm1pbi1saW5rcyI6NX0sIm9wZW5jb25maWctdmxhbjpzd2l0Y2hlZC12bGFuIjp7InN0YXRlIjp7ImFjY2Vzcy12bGFuIjo1NCwiaW50ZXJmYWNlLW1vZGUiOiJBQ0NFU1MiLCJuYXRpdmUtdmxhbiI6MzR9fX0sImNvbmZpZyI6eyJlbmFibGVkIjp0cnVlLCJ0eXBlIjoib3BlbmNvbmZpZy1pZi10eXBlczpJRl9FVEhFUk5FVCIsImxvb3BiYWNrLW1vZGUiOmZhbHNlfSwib3BlbmNvbmZpZy1pZi1ldGhlcm5ldDpldGhlcm5ldCI6eyJzdGF0ZSI6eyJwb3J0LXNwZWVkIjoib3BlbmNvbmZpZy1pZi1ldGhlcm5ldDpTUEVFRF8xME1CIiwibmVnb3RpYXRlZC1kdXBsZXgtbW9kZSI6IkZVTEwiLCJlbmFibGUtZmxvdy1jb250cm9sIjp0cnVlLCJuZWdvdGlhdGVkLXBvcnQtc3BlZWQiOiJvcGVuY29uZmlnLWlmLWV0aGVybmV0OlNQRUVEXzEwTUIiLCJhdXRvLW5lZ290aWF0ZSI6dHJ1ZSwib3BlbmNvbmZpZy1pZi1hZ2dyZWdhdGU6YWdncmVnYXRlLWlkIjoiYWRtaW4iLCJody1tYWMtYWRkcmVzcyI6IjAwOjAwOjBBOkJCOjI4OkZDIn0sIm9wZW5jb25maWctdmxhbjpzd2l0Y2hlZC12bGFuIjp7InN0YXRlIjp7ImFjY2Vzcy12bGFuIjo0NSwiaW50ZXJmYWNlLW1vZGUiOiJBQ0NFU1MiLCJuYXRpdmUtdmxhbiI6Mzd9fX19XX19" }, "duplicates": 0 }], "delete": [], "atomic": false }], "extension": [] } 08:15:40.584 [grpc-default-executor-3] DEBUG org.opendaylight.gnmi.simulatordevice.gnmi.GnmiService -- GetResponse ready: { "notification": [{ "timestamp": "1766304940584", "alias": "", "update": [{ "path": { "element": [], "origin": "", "elem": [{ "name": "openconfig-interfaces:interfaces", "key": { } }], "target": "" }, "val": { "jsonIetfVal": "eyJvcGVuY29uZmlnLWludGVyZmFjZXM6aW50ZXJmYWNlcyI6eyJpbnRlcmZhY2UiOlt7Im5hbWUiOiJldGgzIiwiY29uZmlnIjp7Im10dSI6MTUwMCwibmFtZSI6ImFkbWluIiwibG9vcGJhY2stbW9kZSI6ZmFsc2UsImVuYWJsZWQiOmZhbHNlLCJ0eXBlIjoib3BlbmNvbmZpZy1pZi10eXBlczpJRl9FVEhFUk5FVCJ9fSx7Im5hbWUiOiJicjAiLCJvcGVuY29uZmlnLWlmLWFnZ3JlZ2F0ZTphZ2dyZWdhdGlvbiI6eyJjb25maWciOnsibWluLWxpbmtzIjo1LCJsYWctdHlwZSI6IkxBQ1AifSwib3BlbmNvbmZpZy12bGFuOnN3aXRjaGVkLXZsYW4iOnsiY29uZmlnIjp7ImFjY2Vzcy12bGFuIjo1NCwiaW50ZXJmYWNlLW1vZGUiOiJBQ0NFU1MiLCJuYXRpdmUtdmxhbiI6MzR9fX0sImNvbmZpZyI6eyJtdHUiOjEwMCwibmFtZSI6ImFkbWluIiwibG9vcGJhY2stbW9kZSI6ZmFsc2UsImVuYWJsZWQiOmZhbHNlLCJ0eXBlIjoib3BlbmNvbmZpZy1pZi10eXBlczpJRl9FVEhFUk5FVCJ9LCJvcGVuY29uZmlnLWlmLWV0aGVybmV0OmV0aGVybmV0Ijp7ImNvbmZpZyI6eyJwb3J0LXNwZWVkIjoib3BlbmNvbmZpZy1pZi1ldGhlcm5ldDpTUEVFRF8xME1CIiwiYXV0by1uZWdvdGlhdGUiOnRydWUsIm9wZW5jb25maWctaWYtYWdncmVnYXRlOmFnZ3JlZ2F0ZS1pZCI6ImFkbWluIiwiZW5hYmxlLWZsb3ctY29udHJvbCI6dHJ1ZX0sIm9wZW5jb25maWctdmxhbjpzd2l0Y2hlZC12bGFuIjp7ImNvbmZpZyI6eyJhY2Nlc3MtdmxhbiI6NDUsImludGVyZmFjZS1tb2RlIjoiQUNDRVNTIiwibmF0aXZlLXZsYW4iOjM3fX19fV19fQ==" }, "duplicates": 0 }], "delete": [], "atomic": false }], "extension": [] } 08:15:40.585 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND HEADERS: streamId=5 headers=GrpcHttp2OutboundHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:40.585 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND HEADERS: streamId=7 headers=GrpcHttp2OutboundHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:40.585 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND DATA: streamId=5 padding=0 endStream=false length=1223 bytes=00000004c20abf0908a884eaffb33322b5090a241a220a206f70656e636f6e6669672d696e74657266616365733a696e74657266616365731a8c095a89097b22... 08:15:40.585 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND HEADERS: streamId=5 headers=GrpcHttp2OutboundHeaders[grpc-status: 0] padding=0 endStream=true 08:15:40.585 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND DATA: streamId=7 padding=0 endStream=false length=861 bytes=00000003580ad50608a884eaffb33322cb060a241a220a206f70656e636f6e6669672d696e74657266616365733a696e74657266616365731aa2065a9f067b22... 08:15:40.585 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] OUTBOUND HEADERS: streamId=7 headers=GrpcHttp2OutboundHeaders[grpc-status: 0] padding=0 endStream=true 08:15:40.586 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=5 headers=GrpcHttp2ResponseHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:40.586 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=7 headers=GrpcHttp2ResponseHeaders[:status: 200, content-type: application/grpc, grpc-encoding: identity, grpc-accept-encoding: gzip] padding=0 endStream=false 08:15:40.586 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND DATA: streamId=5 padding=0 endStream=false length=1223 bytes=00000004c20abf0908a884eaffb33322b5090a241a220a206f70656e636f6e6669672d696e74657266616365733a696e74657266616365731a8c095a89097b22... 08:15:40.586 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=5 headers=GrpcHttp2ResponseHeaders[grpc-status: 0] padding=0 endStream=true 08:15:40.586 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND DATA: streamId=7 padding=0 endStream=false length=861 bytes=00000003580ad50608a884eaffb33322cb060a241a220a206f70656e636f6e6669672d696e74657266616365733a696e74657266616365731aa2065a9f067b22... 08:15:40.586 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] INBOUND HEADERS: streamId=7 headers=GrpcHttp2ResponseHeaders[grpc-status: 0] padding=0 endStream=true 08:15:40.586 [grpc-default-executor-4] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Got gNMI GetResponse: notification { timestamp: 1766304940584 update { path { elem { name: "openconfig-interfaces:interfaces" } } val { json_ietf_val: "{\"openconfig-interfaces:interfaces\":{\"interface\":[{\"name\":\"eth3\",\"config\":{\"mtu\":1500,\"name\":\"admin\",\"loopback-mode\":false,\"enabled\":false,\"type\":\"openconfig-if-types:IF_ETHERNET\"}},{\"name\":\"br0\",\"openconfig-if-aggregate:aggregation\":{\"config\":{\"min-links\":5,\"lag-type\":\"LACP\"},\"openconfig-vlan:switched-vlan\":{\"config\":{\"access-vlan\":54,\"interface-mode\":\"ACCESS\",\"native-vlan\":34}}},\"config\":{\"mtu\":100,\"name\":\"admin\",\"loopback-mode\":false,\"enabled\":false,\"type\":\"openconfig-if-types:IF_ETHERNET\"},\"openconfig-if-ethernet:ethernet\":{\"config\":{\"port-speed\":\"openconfig-if-ethernet:SPEED_10MB\",\"auto-negotiate\":true,\"openconfig-if-aggregate:aggregate-id\":\"admin\",\"enable-flow-control\":true},\"openconfig-vlan:switched-vlan\":{\"config\":{\"access-vlan\":45,\"interface-mode\":\"ACCESS\",\"native-vlan\":37}}}}]}}" } } } 08:15:40.587 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Got gNMI GetResponse: notification { timestamp: 1766304940584 update { path { elem { name: "openconfig-interfaces:interfaces" } } val { json_ietf_val: "{\"openconfig-interfaces:interfaces\":{\"interface\":[{\"name\":\"br0\",\"state\":{\"ifindex\":1,\"mtu\":100,\"loopback-mode\":false,\"oper-status\":\"DOWN\",\"counters\":{\"in-pkts\":\"101\",\"out-octets\":\"105\",\"out-pkts\":\"106\",\"in-octets\":\"100\",\"out-discards\":\"107\",\"in-fcs-errors\":\"104\",\"out-errors\":\"108\",\"in-errors\":\"103\",\"in-discards\":\"102\"},\"name\":\"br0\",\"enabled\":false,\"logical\":true,\"type\":\"openconfig-if-types:IF_ETHERNET\",\"admin-status\":\"UP\"},\"openconfig-if-aggregate:aggregation\":{\"state\":{\"lag-type\":\"LACP\",\"member\":[\"br0\"],\"lag-speed\":20,\"min-links\":5},\"openconfig-vlan:switched-vlan\":{\"state\":{\"access-vlan\":54,\"interface-mode\":\"ACCESS\",\"native-vlan\":34}}},\"config\":{\"enabled\":true,\"type\":\"openconfig-if-types:IF_ETHERNET\",\"loopback-mode\":false},\"openconfig-if-ethernet:ethernet\":{\"state\":{\"port-speed\":\"openconfig-if-ethernet:SPEED_10MB\",\"negotiated-duplex-mode\":\"FULL\",\"enable-flow-control\":true,\"negotiated-port-speed\":\"openconfig-if-ethernet:SPEED_10MB\",\"auto-negotiate\":true,\"openconfig-if-aggregate:aggregate-id\":\"admin\",\"hw-mac-address\":\"00:00:0A:BB:28:FC\"},\"openconfig-vlan:switched-vlan\":{\"state\":{\"access-vlan\":45,\"interface-mode\":\"ACCESS\",\"native-vlan\":37}}}}]}}" } } } 08:15:40.588 [grpc-default-executor-4] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Parsed Normalized nodes from gNMI GetResponse: ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, body=UnmodifiableCollection{[ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=eth3}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=1500}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=eth3}]}, ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=br0}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, body=5}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, body=LACP}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=54}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=34}]}]}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, body=true}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=45}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=37}]}]}]}]}]}}]} 08:15:40.589 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.mountpoint.ops.GnmiGet -- [gnmi-node-test] Parsed Normalized nodes from gNMI GetResponse: ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces, body=[ImmutableSystemMapNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface, body=[ImmutableMapEntryNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)interface[{(http://openconfig.net/yang/interfaces?revision=2021-04-06)name=br0}], body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)ifindex, body=1}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)mtu, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)oper-status, body=DOWN}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)counters, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-pkts, body=101}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-octets, body=105}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-pkts, body=106}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-octets, body=100}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-discards, body=107}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-fcs-errors, body=104}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)out-errors, body=108}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-errors, body=103}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)in-discards, body=102}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=false}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)logical, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)admin-status, body=UP}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-type, body=LACP}, ImmutableSystemLeafSetNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member, body=[ImmutableLeafSetEntryNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)member[br0], body=br0}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)lag-speed, body=20}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)min-links, body=5}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=54}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=34}]}]}]}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)name, body=br0}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)config, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)enabled, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)type, body=(http://openconfig.net/yang/openconfig-if-types?revision=2018-11-21)IF_ETHERNET}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces?revision=2021-04-06)loopback-mode, body=false}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-duplex-mode, body=FULL}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)enable-flow-control, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)negotiated-port-speed, body=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)SPEED_10MB}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)auto-negotiate, body=true}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregate-id, body=admin}, ImmutableLeafNode{name=(http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)hw-mac-address, body=00:00:0A:BB:28:FC}]}, ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan, body=[ImmutableContainerNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)state, body=[ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)access-vlan, body=45}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)interface-mode, body=ACCESS}, ImmutableLeafNode{name=(http://openconfig.net/yang/vlan?revision=2019-04-16)native-vlan, body=37}]}]}]}]}]}]} 08:15:40.590 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces 08:15:40.590 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:40.590 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)state 08:15:40.590 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)counters 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)aggregation 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)config 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/aggregate?revision=2020-05-01)state 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)state 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)config 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces?revision=2021-04-06)config 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)ethernet 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)switched-vlan 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)state 08:15:40.591 [/127.0.0.1:59014-http-server-resp-2] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (http://openconfig.net/yang/vlan?revision=2019-04-16)config 08:15:40.591 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=9 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 1660] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:40.591 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=9 padding=0 endStream=true length=1660 bytes=7b226f70656e636f6e6669672d696e74657266616365733a696e7465726661636573223a7b22696e74657266616365223a5b7b226e616d65223a226574683322... 08:15:40.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@22cf67c} unlocked 08:15:40.592 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Check mountpoint for node gnmi-node-test is created response (GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test/yang-ext:mount/openconfig-interfaces:interfaces) 200 08:15:40.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@22cf67c} readied 08:15:40.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@22cf67c} 08:15:40.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@22cf67c} completed successfully 08:15:40.592 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.592 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Device successfully connected! 08:15:40.593 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.594 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=11 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3, :scheme: http, content-type: application/json, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.594 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.AbstractBasicAuthHandler -- UNAUTHORIZED: request has no 'Basic' Authorization header 08:15:40.594 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=11 headers=DefaultHttp2Headers[:status: 401, www-authenticate: BASIC realm="application"] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:40.594 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND RST_STREAM: streamId=11 errorCode=5 08:15:40.595 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=13 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.595 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:40.595 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:40.595 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:40.595 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:40.595 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:40.595 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:40.595 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:40.595 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:40.595 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.595 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.595 [/127.0.0.1:59014-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-72 allocated with snapshot Version[375226c9] 08:15:40.595 [/127.0.0.1:59014-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-72 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:40.595 [/127.0.0.1:59014-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-72 : Closed 08:15:40.595 [/127.0.0.1:59014-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-5 allocated with snapshot Version[618092c3] 08:15:40.595 [/127.0.0.1:59014-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-5 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:40.595 [/127.0.0.1:59014-http-server-req-4] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-5 : Closed 08:15:40.595 [/127.0.0.1:59014-http-server-req-4] DEBUG org.opendaylight.restconf.server.api.AbstractServerRequest -- Request NettyServerRequest{uuid=06a977d7-7111-49bf-bd20-1d3df53c9d52, parameters=QueryParameters({}), prettyPrint=org.opendaylight.restconf.api.query.PrettyPrintParam@1314033d} failed org.opendaylight.netconf.databind.RequestException: Request could not be completed because the relevant data model content does not exist at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:582) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:576) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132) at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004) at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:469) at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:119) at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1098) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy.readData(RestconfStrategy.java:576) at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy.getData(MdsalRestconfStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:115) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataGET(MdsalRestconfServer.java:186) at org.opendaylight.restconf.server.PendingDataGet.execute(PendingDataGet.java:52) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:40.596 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=13 headers=DefaultHttp2Headers[:status: 409, content-type: application/yang-data+json, content-length: 242] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:40.596 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=13 padding=0 endStream=true length=242 bytes=7b0a2020226572726f7273223a207b0a20202020226572726f72223a205b0a2020202020207b0a2020202020202020226572726f722d746167223a2022646174... 08:15:40.597 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiUploadModelsITTest -- Content of YANG test-yang.yang file: module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } 08:15:40.597 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending POST request with { "input": { "name": "test-yang", "version": "1.2.3", "body": "module test-yang { yang-version 1; namespace \"test-yang\"; prefix \"ty\"; description \"Test model used for uploading model\"; revision \"2021-05-18\" { description \"Initial revision of test model\"; reference \"1.2.3\"; } container test-container { leaf test-leaf { type string; } } } " } } payload to path: http://localhost:45697/rests/operations/gnmi-yang-storage:upload-yang-model 08:15:40.597 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=15 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: POST, :path: /rests/operations/gnmi-yang-storage:upload-yang-model, :scheme: http, content-type: application/json, content-length: 443, user-agent: Java-http-client/21.0.9] padding=0 endStream=false 08:15:40.598 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND DATA: streamId=15 padding=0 endStream=true length=443 bytes=7b0a0922696e707574223a207b0a0909226e616d65223a2022746573742d79616e67222c0a09092276657273696f6e223a2022312e322e33222c0a090922626f... 08:15:40.598 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.AbstractBasicAuthHandler -- UNAUTHORIZED: request has no 'Basic' Authorization header 08:15:40.598 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=15 headers=DefaultHttp2Headers[:status: 401, www-authenticate: BASIC realm="application"] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:40.598 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND RST_STREAM: streamId=15 errorCode=5 08:15:40.599 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=17 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: POST, :path: /rests/operations/gnmi-yang-storage:upload-yang-model, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, content-length: 443, user-agent: Java-http-client/21.0.9] padding=0 endStream=false 08:15:40.599 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND DATA: streamId=17 padding=0 endStream=true length=443 bytes=7b0a0922696e707574223a207b0a0909226e616d65223a2022746573742d79616e67222c0a09092276657273696f6e223a2022312e322e33222c0a090922626f... 08:15:40.599 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:40.599 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:40.599 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:40.599 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:40.599 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:40.599 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:40.599 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:40.599 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:40.599 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing POST http://localhost:45697/rests/operations/gnmi-yang-storage:upload-yang-model 08:15:40.599 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of POST http://localhost:45697/rests/operations/gnmi-yang-storage:upload-yang-model 08:15:40.600 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.yangtools.binding.loader.RootBindingClassLoader -- Using RootBindingClassLoader{identity=7271fe64, parent=jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528} for interface org.opendaylight.yang.gen.v1.urn.opendaylight.gnmi.yang.storage.rev210331.UploadYangModelInput 08:15:40.609 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model test-yang with version 1.2.3 to operational datastore 08:15:40.609 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-73 allocated with snapshot Version[375226c9] 08:15:40.609 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-73 Merge: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]:ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]} 08:15:40.609 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-73 : Ready 08:15:40.609 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-73 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:40.609 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-79 is submitted for execution. 08:15:40.609 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-79: canCommit Started 08:15:40.609 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-73 can be committed 08:15:40.610 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-79: preCommit Started 08:15:40.610 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-79: doCommit Started 08:15:40.610 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[375226c9], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[375226c9], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[5c330d27], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[43475874], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[2c92ed72], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[375226c9], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[375226c9], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[5c330d27], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:40.628 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-79: doCommit completed 08:15:40.628 [/127.0.0.1:59014-http-server-req-5] INFO org.opendaylight.gnmi.southbound.schema.yangstore.rpc.YangStorageServiceRpcImpl -- Yang model test-yang with version 1.2.3 added to operational datastore 08:15:40.628 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.yangtools.binding.loader.RootBindingClassLoader -- Using existing RootBindingClassLoader{identity=7271fe64, parent=jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528} for interface org.opendaylight.yang.gen.v1.urn.opendaylight.gnmi.yang.storage.rev210331.UploadYangModelOutput 08:15:40.632 [/127.0.0.1:59014-http-server-req-5] DEBUG org.opendaylight.yangtools.binding.loader.RootBindingClassLoader -- Using existing RootBindingClassLoader{identity=7271fe64, parent=jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528} for interface org.opendaylight.yang.gen.v1.urn.opendaylight.gnmi.yang.storage.rev210331.UploadYangModelOutput 08:15:40.634 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=17 headers=DefaultHttp2Headers[:status: 204, content-length: 0] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:40.635 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.636 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=19 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.636 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:40.636 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:40.636 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:40.636 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:40.636 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:40.636 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:40.636 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:40.636 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:40.636 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.636 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.636 [/127.0.0.1:59014-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-74 allocated with snapshot Version[2c92ed72] 08:15:40.636 [/127.0.0.1:59014-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-74 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:40.636 [/127.0.0.1:59014-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-74 : Closed 08:15:40.636 [/127.0.0.1:59014-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-6 allocated with snapshot Version[618092c3] 08:15:40.636 [/127.0.0.1:59014-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-6 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:40.636 [/127.0.0.1:59014-http-server-req-6] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-6 : Closed 08:15:40.637 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=19 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 473] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:40.637 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=19 padding=0 endStream=true length=473 bytes=7b22676e6d692d79616e672d73746f726167653a676e6d692d79616e672d6d6f64656c223a5b7b226e616d65223a22746573742d79616e67222c227665727369... 08:15:40.638 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.638 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=21 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.638 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:40.638 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:40.638 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:40.638 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:40.638 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:40.638 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:40.638 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:40.638 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:40.638 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.638 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.639 [/127.0.0.1:59014-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-75 allocated with snapshot Version[2c92ed72] 08:15:40.639 [/127.0.0.1:59014-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-75 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:40.639 [/127.0.0.1:59014-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-75 : Closed 08:15:40.639 [/127.0.0.1:59014-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-7 allocated with snapshot Version[618092c3] 08:15:40.639 [/127.0.0.1:59014-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-7 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:40.639 [/127.0.0.1:59014-http-server-req-7] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-7 : Closed 08:15:40.639 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=21 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 473] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:40.639 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=21 padding=0 endStream=true length=473 bytes=7b22676e6d692d79616e672d73746f726167653a676e6d692d79616e672d6d6f64656c223a5b7b226e616d65223a22746573742d79616e67222c227665727369... 08:15:40.639 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending DELETE request to path: http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.640 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=23 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: DELETE, :path: /rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.640 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:40.640 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:40.640 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:40.640 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:40.640 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:40.640 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:40.640 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:40.640 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:40.640 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing DELETE http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.640 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of DELETE http://localhost:45697/rests/data/gnmi-yang-storage:gnmi-yang-models/gnmi-yang-model=test-yang,1.2.3 08:15:40.640 [/127.0.0.1:59014-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: CFG-8 allocated with snapshot Version[618092c3] 08:15:40.640 [/127.0.0.1:59014-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadWriteTransaction -- Tx: CFG-8 Read: /(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models/gnmi-yang-model/gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}] 08:15:40.640 [/127.0.0.1:59014-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: CFG-8 : Closed 08:15:40.640 [/127.0.0.1:59014-http-server-req-8] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: CFG-8 is closed. 08:15:40.640 [/127.0.0.1:59014-http-server-req-8] DEBUG org.opendaylight.restconf.server.api.AbstractServerRequest -- Request NettyServerRequest{uuid=4aee1cda-7a33-41b7-8421-d593bbdf544c, parameters=QueryParameters({}), prettyPrint=org.opendaylight.restconf.api.query.PrettyPrintParam@1314033d} failed org.opendaylight.netconf.databind.RequestException: Data does not exist at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy$1.onSuccess(MdsalRestconfStrategy.java:67) at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy$1.onSuccess(MdsalRestconfStrategy.java:63) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132) at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004) at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:469) at com.google.common.util.concurrent.FluentFuture$TrustedFuture.addListener(FluentFuture.java:114) at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1098) at com.google.common.util.concurrent.FluentFuture.addCallback(FluentFuture.java:416) at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy.deleteData(MdsalRestconfStrategy.java:63) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataDELETE(AbstractServerStrategy.java:98) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataDELETE(MdsalRestconfServer.java:169) at org.opendaylight.restconf.server.PendingDataDelete.execute(PendingDataDelete.java:32) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:40.641 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=23 headers=DefaultHttp2Headers[:status: 409, content-type: application/yang-data+json, content-length: 288] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:40.641 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=23 padding=0 endStream=true length=288 bytes=7b0a2020226572726f7273223a207b0a20202020226572726f72223a205b0a2020202020207b0a2020202020202020226572726f722d746167223a2022646174... 08:15:40.641 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Performing cleanup! 08:15:40.641 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology 08:15:40.642 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=25 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology, :scheme: http, content-type: application/json, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.642 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.AbstractBasicAuthHandler -- UNAUTHORIZED: request has no 'Basic' Authorization header 08:15:40.642 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=25 headers=DefaultHttp2Headers[:status: 401, www-authenticate: BASIC realm="application"] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:40.642 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND RST_STREAM: streamId=25 errorCode=5 08:15:40.642 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=27 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.643 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:40.643 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:40.643 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:40.643 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:40.643 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:40.643 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:40.643 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:40.643 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:40.643 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology 08:15:40.643 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology 08:15:40.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@75e5b254} unlocked 08:15:40.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@75e5b254} readied 08:15:40.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@75e5b254} 08:15:40.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@75e5b254} completed successfully 08:15:40.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.643 [/127.0.0.1:59014-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-76 allocated with snapshot Version[2c92ed72] 08:15:40.643 [/127.0.0.1:59014-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-76 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}] 08:15:40.643 [/127.0.0.1:59014-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-76 : Closed 08:15:40.643 [/127.0.0.1:59014-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-9 allocated with snapshot Version[618092c3] 08:15:40.643 [/127.0.0.1:59014-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-9 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}] 08:15:40.643 [/127.0.0.1:59014-http-server-req-9] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-9 : Closed 08:15:40.643 [/127.0.0.1:59014-http-server-resp-7] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types 08:15:40.643 [/127.0.0.1:59014-http-server-resp-7] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters 08:15:40.643 [/127.0.0.1:59014-http-server-resp-7] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter choice (urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice 08:15:40.644 [/127.0.0.1:59014-http-server-resp-7] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state 08:15:40.644 [/127.0.0.1:59014-http-server-resp-7] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities 08:15:40.644 [/127.0.0.1:59014-http-server-resp-7] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters 08:15:40.644 [/127.0.0.1:59014-http-server-resp-7] DEBUG org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack -- Enter container (urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters 08:15:40.644 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=27 headers=DefaultHttp2Headers[:status: 200, cache-control: no-cache, content-type: application/yang-data+json, content-length: 1907] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:40.644 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=27 padding=0 endStream=true length=1907 bytes=7b226e6574776f726b2d746f706f6c6f67793a746f706f6c6f6779223a5b7b22746f706f6c6f67792d6964223a22676e6d692d746f706f6c6f6779222c226e6f... 08:15:40.645 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Disconnecting device! 08:15:40.645 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending DELETE request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:40.645 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=29 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: DELETE, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:40.645 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:40.645 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:40.645 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:40.645 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:40.645 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:40.645 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:40.645 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:40.645 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:40.645 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing DELETE http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:40.645 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of DELETE http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:40.645 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: CFG-10 allocated with snapshot Version[618092c3] 08:15:40.645 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadWriteTransaction -- Tx: CFG-10 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:40.645 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: CFG-10 Delete: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: CFG-10 : Ready 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: CFG-10 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-87 is submitted for execution. 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-87: canCommit Started 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: CFG-10 can be committed 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-87: preCommit Started 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-87: doCommit Started 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[453273b6], subtreeVersion=Version[618092c3], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[4dbaea59], subtreeVersion=Version[618092c3], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[4dbaea59], subtreeVersion=Version[618092c3], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[4dbaea59], subtreeVersion=Version[618092c3], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=ValueNode{version=Version[618092c3], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}}, (urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=SimpleContainerNode{version=Version[618092c3], data=ImmutableSystemMapNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node, body=[ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]}]}}}, untouched=[ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}}} to MaterializedContainerNode{version=Version[453273b6], subtreeVersion=Version[783d94f6], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[4dbaea59], subtreeVersion=Version[783d94f6], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[4dbaea59], subtreeVersion=Version[783d94f6], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[4dbaea59], subtreeVersion=Version[783d94f6], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=ValueNode{version=Version[618092c3], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}}}, untouched=[ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}}} 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreTreeChangePublisher -- Enqueueing candidates [DefaultDataTreeCandidate{rootPath=/(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], rootNode=DataTreeCandidateNode{modificationType=DELETE, oldMeta=SimpleContainerNode{version=Version[618092c3], data=ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]}}}}] for registration RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.yangtools.util.concurrent.AbstractBatchingExecutor -- DataTreeChangeListenerQueueMgr + dsName: Submitting DispatcherTask for worker RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.yangtools.util.concurrent.AbstractBatchingExecutor -- DataTreeChangeListenerQueueMgr + dsName: Invoking worker RegImpl{closed=false, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} with tasks: [DefaultDataTreeCandidate{rootPath=/(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], rootNode=DataTreeCandidateNode{modificationType=DELETE, oldMeta=SimpleContainerNode{version=Version[618092c3], data=ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-parameters, body=[ImmutableChoiceNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)security-choice, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)connection-type, body=INSECURE}]}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)host, body=127.0.0.1}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)port, body=41545}]}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)extensions-parameters, body=[ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)gnmi-parameters, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)use-model-name-prefix, body=true}]}]}]}}}}] 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Data tree change on gNMI topology triggered 08:15:40.646 [/127.0.0.1:59014-http-server-req-10] INFO org.opendaylight.gnmi.southbound.listener.GnmiNodeListener -- Received delete node Uri{value=gnmi-node-test} event, disconnecting ... 08:15:40.646 [grpc-default-executor-1] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Channel state of node gnmi-node-test changed from READY to SHUTDOWN. Updating operational datastore... 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-77 allocated with snapshot Version[2c92ed72] 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-77 Merge: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]:ImmutableMapEntryNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}], body=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}, ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=SHUTDOWN}]}]} 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-77 : Ready 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-77 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-88 is submitted for execution. 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-88: canCommit Started 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-77 can be committed 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-88: preCommit Started 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-88: doCommit Started 08:15:40.653 [grpc-nio-worker-ELG-65-2] DEBUG io.grpc.netty.NettyClientHandler -- [id: 0x36ca2d3e, L:/127.0.0.1:42850 - R:/127.0.0.1:41545] OUTBOUND GO_AWAY: lastStreamId=0 errorCode=0 length=0 bytes= 08:15:40.653 [nioEventLoopGroup-63-2] DEBUG io.grpc.netty.NettyServerHandler -- [id: 0xf76f7b5e, L:/127.0.0.1:41545 - R:/127.0.0.1:42850] INBOUND GO_AWAY: lastStreamId=0 errorCode=0 length=0 bytes= 08:15:40.647 [grpc-default-executor-1] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[2c92ed72], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[375226c9], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[375226c9], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[375226c9], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=READY}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[5c330d27], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[74c7af49], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[74c7af49], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[74c7af49], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=SHUTDOWN}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[5c330d27], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:40.666 [grpc-default-executor-1] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-88: doCommit completed 08:15:40.666 [grpc-default-executor-1] DEBUG org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Current session status SHUTDOWN 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] INFO org.opendaylight.gnmi.southbound.device.session.listener.GnmiConnectionStatusListener -- Stopping listening on gRPC channel state for node gnmi-node-test 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-78 allocated with snapshot Version[74c7af49] 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-78 Delete: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-78 : Ready 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-78 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-89 is submitted for execution. 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-89: canCommit Started 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-78 can be committed 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-89: preCommit Started 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-89: doCommit Started 08:15:40.666 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}]=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[74c7af49], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=ValueNode{version=Version[74c7af49], value=ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id, body=gnmi-node-test}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)node-state=MaterializedContainerNode{version=Version[53a825bd], subtreeVersion=Version[74c7af49], children={(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status=ValueNode{version=Version[74c7af49], value=ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)node-status, body=SHUTDOWN}}, (urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities=SimpleContainerNode{version=Version[5c330d27], data=ImmutableContainerNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capabilities, body=[Regular{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-aug semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=gnmi-test-model semver: 1.0.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=iana-if-type revision: 2023-01-26}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-interfaces revision: 2018-02-20}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=ietf-yang-types revision: 2013-07-15}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa semver: 0.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-aaa-types semver: 0.4.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarm-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-alarms semver: 0.3.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-extensions revision: 2020-06-16}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-aggregate semver: 2.4.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-ethernet semver: 2.11.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-if-types semver: 0.2.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-inet-types semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-interfaces semver: 2.5.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-license semver: 0.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-messages semver: 0.0.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow semver: 0.1.2}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-openflow-types semver: 0.1.3}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform semver: 0.13.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-platform-types semver: 1.1.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-procmon semver: 0.4.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system semver: 0.10.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-logging semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-system-terminal semver: 0.3.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-types semver: 0.6.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan semver: 3.2.0}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-vlan-types semver: 3.1.1}]}, ImmutableUnkeyedListEntryNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)available-capability, body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:topology?revision=2021-03-16)capability, body=openconfig-yang-types semver: 0.3.0}]}]}]}}}}}}}}}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-89: doCommit completed 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.gnmi.southbound.mountpoint.GnmiMountPointRegistrator -- Mountpoint for node gnmi-node-test removed 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-79 allocated with snapshot Version[3ad3608a] 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Tx: OPER-79 Delete: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-79 : Ready 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-79 is submitted. Modifications: InMemoryDataTreeModification{state=Ready} 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-90 is submitted for execution. 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-90: canCommit Started 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-79 can be committed 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-90: preCommit Started 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-90: doCommit Started 08:15:40.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4f810e56} unlocked 08:15:40.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4f810e56} readied 08:15:40.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4f810e56} 08:15:40.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4f810e56} completed successfully 08:15:40.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:40.684 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} to MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}} 08:15:40.716 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.spi.store.AbstractDOMStoreTreeChangePublisher -- Skipping unmodified candidate InMemoryDataTreeCandidate{rootPath=/, rootNode=DataTreeCandidateNode{modificationType=UNMODIFIED, oldMeta=MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}}, newMeta=MaterializedContainerNode{version=Version[7cd471e0], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology=MaterializedContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]=LazyContainerNode{version=Version[38d03eba], subtreeVersion=Version[3ad3608a], children={}, untouched=[ImmutableLeafNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id, body=gnmi-topology}, ImmutableContainerNode{name=(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-types, body=[]}]}}}}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[61a0088e], subtreeVersion=Version[2c92ed72], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[5f7a8410], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa/types"; prefix "oc-aaa-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines shared types for data related to AAA (authentication, authorization, accounting)."; oc-ext:openconfig-version "0.4.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity AAA_SERVER_TYPE { description "Base identity for types of AAA servers"; } identity SYSTEM_DEFINED_ROLES { description "Base identity for system_defined roles that can be assigned to users."; } identity SYSTEM_ROLE_ADMIN { base SYSTEM_DEFINED_ROLES; description "Built-in role that allows the equivalent of superuser permission for all configuration and operational commands on the device."; } identity AAA_ACCOUNTING_EVENT_TYPE { description "Base identity for specifying events types that should be sent to AAA server for accounting"; } identity AAA_ACCOUNTING_EVENT_COMMAND { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies interactive command events for AAA accounting"; } identity AAA_ACCOUNTING_EVENT_LOGIN { base AAA_ACCOUNTING_EVENT_TYPE; description "Specifies login events for AAA accounting"; } identity AAA_AUTHORIZATION_EVENT_TYPE { description "Base identity for specifying activities that should be sent to AAA server for authorization"; } identity AAA_AUTHORIZATION_EVENT_COMMAND { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies interactive command events for AAA authorization"; } identity AAA_AUTHORIZATION_EVENT_CONFIG { base AAA_AUTHORIZATION_EVENT_TYPE; description "Specifies configuration (e.g., EXEC) events for AAA authorization"; } identity AAA_METHOD_TYPE { description "Base identity to define well-known methods for AAA operations"; } identity TACACS_ALL { base AAA_METHOD_TYPE; description "The group of all TACACS+ servers."; } identity RADIUS_ALL { base AAA_METHOD_TYPE; description "The group of all RADIUS servers."; } identity LOCAL { base AAA_METHOD_TYPE; description "Locally configured method for AAA operations."; } // typedef statements typedef crypt-password-type { type string; description "A password that is hashed based on the hash algorithm indicated by the prefix in the string. The string takes the following form, based on the Unix crypt function: $[$=(,=)*][$[$]] Common hash functions include: id | hash function ---+--------------- 1 | MD5 2a| Blowfish 2y| Blowfish (correct handling of 8-bit chars) 5 | SHA-256 6 | SHA-512 These may not all be supported by a target device."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[54e3de36], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-procmon { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/procmon"; prefix "oc-proc"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides data definitions for process health monitoring of one or more processes running on the system."; oc-ext:openconfig-version "0.4.0"; revision "2019-03-15" { description "Update process start time to be an absolute timestamp, ensure that the units for CPU time are expressed correctly. Update cpu-usage leaves to commonly use counter64 for consumed CPU time."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping procmon-processes-top { description "Top level grouping for attributes for processes."; container processes { description "Parameters related to all monitored processes"; list process { key "pid"; config false; description "List of monitored processes"; leaf pid { type leafref { path "../state/pid"; } description "Reference to the process pid key"; } container state { config false; description "State parameters related to monitored processes"; uses procmon-process-attributes-state; } } } } grouping procmon-process-attributes-state { description "Attributes state definitions for a process"; leaf pid { type uint64; description "The process pid"; } leaf name { type string; description "The process name"; } leaf-list args { type string; description "Current process command line arguments. Arguments with a parameter (e.g., --option 10 or -option=10) should be represented as a single element of the list with the argument name and parameter together. Flag arguments, i.e., those without a parameter should also be in their own list element."; } leaf start-time { type oc-types:timeticks64; description "The time at which this process started, relative to the UNIX epoch. The system must be synchronized such that the start-time can be reported accurately, otherwise it should not be reported."; } leaf cpu-usage-user { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in user mode in nanoseconds."; } leaf cpu-usage-system { type oc-yang:counter64; units "nanoseconds"; description "CPU time consumed by this process in kernel mode."; } leaf cpu-utilization { type oc-types:percentage; description "The percentage of CPU that is being used by the process."; } leaf memory-usage { type uint64; units "bytes"; description "Bytes allocated and still in use by the process"; } leaf memory-utilization { type oc-types:percentage; description "The percentage of RAM that is being used by the process."; } } // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-procmon}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.4.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[182aac9a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarm-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarm-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms/types"; prefix "oc-alarm-types"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity OPENCONFIG_ALARM_TYPE_ID { description "Base identity for alarm type ID profiles"; } identity AIS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an alarm indication signal type of alarm"; } identity EQPT { base OPENCONFIG_ALARM_TYPE_ID; description "Defines an equipment related type of alarm that is specific to the physical hardware"; } identity LOS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a loss of signal type of alarm"; } identity OTS { base OPENCONFIG_ALARM_TYPE_ID; description "Defines a optical transport signal type of alarm"; } identity OPENCONFIG_ALARM_SEVERITY { description "Base identity for alarm severity profiles. Derived identities are based on contents of the draft IETF YANG Alarm Module"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } identity UNKNOWN { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that the severity level could not be determined. This level SHOULD be avoided."; } identity MINOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault. Such a severity can be reported, for example, when the detected alarm condition is not currently degrading the capacity of the resource"; } identity WARNING { base OPENCONFIG_ALARM_SEVERITY; description "Indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt. Action should be taken to further diagnose (if necessary) and correct the problem in order to prevent it from becoming a more serious service affecting fault."; } identity MAJOR { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has developed and an urgent corrective action is required. Such a severity can be reported, for example, when there is a severe degradation in the capability of the resource and its full capability must be restored."; } identity CRITICAL { base OPENCONFIG_ALARM_SEVERITY; description "Indicates that a service affecting condition has occurred and an immediate corrective action is required. Such a severity can be reported, for example, when a resource becomes totally out of service and its capability must be restored."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarm-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[6fa3f6b1], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-ethernet { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ethernet"; prefix "oc-eth"; // import some basic types import openconfig-interfaces { prefix oc-if; } import iana-if-type { prefix ianaift; } import openconfig-yang-types { prefix oc-yang; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state."; oc-ext:openconfig-version "2.11.0"; revision "2021-06-09" { description "Add support for standalone link training."; reference "2.11.0"; } revision "2021-05-17" { description "Add ethernet counters: in-carrier-errors, in-interrupted-tx, in-late-collision, in-mac-errors-rx, in-single-collision, in-symbol-error and out-mac-errors-tx"; reference "2.10.0"; } revision "2021-03-30" { description "Add counter for drops due to oversized frames."; reference "2.9.0"; } revision "2020-05-06" { description "Minor formatting fix."; reference "2.8.1"; } revision "2020-05-06" { description "Add 200G, 400G, 600G and 800G Ethernet speeds."; reference "2.8.0"; } revision "2020-05-05" { description "Fix when statement checks to use rw paths when from a rw context."; reference "2.7.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.7.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.6.2"; } revision "2018-09-04" { description "Remove in-crc-align-errors as it is a duplicate of in-crc-errors"; reference "2.6.1"; } revision "2018-08-28" { description "Add Ethernet counter in-block-errors"; reference "2.6.0"; } revision "2018-07-02" { description "Add new ethernet counters of in-undersize-frames, in-crc-align-errors and the distribution container"; reference "2.5.0"; } revision "2018-04-10" { description "Add identities for 2.5 and 5 Gbps."; reference "2.4.0"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements identity ETHERNET_SPEED { description "base type to specify available Ethernet link speeds"; } identity SPEED_10MB { base ETHERNET_SPEED; description "10 Mbps Ethernet"; } identity SPEED_100MB { base ETHERNET_SPEED; description "100 Mbps Ethernet"; } identity SPEED_1GB { base ETHERNET_SPEED; description "1 Gbps Ethernet"; } identity SPEED_2500MB { base ETHERNET_SPEED; description "2.5 Gbps Ethernet"; } identity SPEED_5GB { base ETHERNET_SPEED; description "5 Gbps Ethernet"; } identity SPEED_10GB { base ETHERNET_SPEED; description "10 Gbps Ethernet"; } identity SPEED_25GB { base ETHERNET_SPEED; description "25 Gbps Ethernet"; } identity SPEED_40GB { base ETHERNET_SPEED; description "40 Gbps Ethernet"; } identity SPEED_50GB { base ETHERNET_SPEED; description "50 Gbps Ethernet"; } identity SPEED_100GB { base ETHERNET_SPEED; description "100 Gbps Ethernet"; } identity SPEED_200GB { base ETHERNET_SPEED; description "200 Gbps Ethernet"; } identity SPEED_400GB { base ETHERNET_SPEED; description "400 Gbps Ethernet"; } identity SPEED_600GB { base ETHERNET_SPEED; description "600 Gbps Ethernet"; } identity SPEED_800GB { base ETHERNET_SPEED; description "800 Gbps Ethernet"; } identity SPEED_UNKNOWN { base ETHERNET_SPEED; description "Interface speed is unknown. Systems may report speed UNKNOWN when an interface is down or unpopuplated (e.g., pluggable not present)."; } // typedef statements // grouping statements grouping ethernet-interface-config { description "Configuration items for Ethernet interfaces"; leaf mac-address { type oc-yang:mac-address; description "Assigns a MAC address to the Ethernet interface. If not specified, the corresponding operational state leaf is expected to show the system-assigned MAC address."; } leaf auto-negotiate { type boolean; default true; description "Set to TRUE to request the interface to auto-negotiate transmission parameters with its peer interface. When set to FALSE, the transmission parameters are specified manually."; reference "IEEE 802.3-2012 auto-negotiation transmission parameters"; } leaf standalone-link-training { type boolean; default false; description "Link training is automatic tuning of the SerDes transmit and receive parameters to ensure an optimal connection over copper links. It is normally run as part of the auto negotiation sequence as specified in IEEE 802.3 Clause 73. Standalone link training is used when full auto negotiation is not desired on an Ethernet link but link training is needed. It is configured by setting the standalone-link-training leaf to TRUE and augo-negotiate leaf to FALSE. Note: If auto-negotiate is true, then the value of standalone link training leaf will be ignored."; } leaf duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is TRUE, this optionally sets the duplex mode that will be advertised to the peer. If unspecified, the interface should negotiate the duplex mode directly (typically full-duplex). When auto-negotiate is FALSE, this sets the duplex mode on the interface directly."; } leaf port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is TRUE, this optionally sets the port-speed mode that will be advertised to the peer for negotiation. If unspecified, it is expected that the interface will select the highest speed available based on negotiation. When auto-negotiate is set to FALSE, sets the link speed to a fixed value -- supported values are defined by ETHERNET_SPEED identities"; } leaf enable-flow-control { type boolean; default false; description "Enable or disable flow control for this interface. Ethernet flow control is a mechanism by which a receiver may send PAUSE frames to a sender to stop transmission for a specified time. This setting should override auto-negotiated flow control settings. If left unspecified, and auto-negotiate is TRUE, flow control mode is negotiated with the peer interface."; reference "IEEE 802.3x"; } } grouping ethernet-interface-state-counters { description "Ethernet-specific counters and statistics"; // ingress counters leaf in-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames received on the interface"; } leaf in-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames received on the interface"; } leaf in-oversize-frames { type oc-yang:counter64; description "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed."; } leaf in-undersize-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed."; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsUndersizePkts"; } leaf in-jabber-frames { type oc-yang:counter64; description "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem."; } leaf in-fragment-frames { type oc-yang:counter64; description "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)."; } leaf in-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames received on the interface"; } leaf in-crc-errors { type oc-yang:counter64; description "The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error)"; reference "RFC 2819: Remote Network Monitoring MIB - etherStatsCRCAlignErrors"; } leaf in-block-errors { type oc-yang:counter64; description "The number of received errored blocks. Error detection codes are capable of detecting whether one or more errors have occurred in a given sequence of bits – the block. It is normally not possible to determine the exact number of errored bits within the block"; } leaf in-carrier-errors { type oc-yang:counter64; description "The number of received errored frames due to a carrier issue. The value refers to MIB counter for dot3StatsCarrierSenseErrors oid=1.3.6.1.2.1.10.7.2.1.11"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-interrupted-tx { type oc-yang:counter64; description "The number of received errored frames due to interrupted transmission issue. The value refers to MIB counter for dot3StatsDeferredTransmissions oid=1.3.6.1.2.1.10.7.2.1.7"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-late-collision { type oc-yang:counter64; description "The number of received errored frames due to late collision issue. The value refers to MIB counter for dot3StatsLateCollisions oid=1.3.6.1.2.1.10.7.2.1.8"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-mac-errors-rx { type oc-yang:counter64; description "The number of received errored frames due to MAC errors received. The value refers to MIB counter for dot3StatsInternalMacReceiveErrors oid=1.3.6.1.2.1.10.7.2.1.16"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-single-collision { type oc-yang:counter64; description "The number of received errored frames due to single collision issue. The value refers to MIB counter for dot3StatsSingleCollisionFrames oid=1.3.6.1.2.1.10.7.2.1.4"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-symbol-error { type oc-yang:counter64; description "The number of received errored frames due to symbol error. The value refers to MIB counter for in-symbol-error oid=1.3.6.1.2.1.10.7.2.1.18"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } leaf in-maxsize-exceeded { type oc-yang:counter64; description "The total number frames received that are well-formed but dropped due to exceeding the maximum frame size on the interface (e.g., MTU or MRU)"; } // egress counters leaf out-mac-control-frames { type oc-yang:counter64; description "MAC layer control frames sent on the interface"; } leaf out-mac-pause-frames { type oc-yang:counter64; description "MAC layer PAUSE frames sent on the interface"; } leaf out-8021q-frames { type oc-yang:counter64; description "Number of 802.1q tagged frames sent on the interface"; } leaf out-mac-errors-tx { type oc-yang:counter64; description "The number of sent errored frames due to MAC errors transmitted. The value refers to MIB counter for dot3StatsInternalMacTransmitErrors oid=1.3.6.1.2.1.10.7.2.1.10"; reference "RFC 1643 Definitions of Managed Objects for the Ethernet-like Interface Types."; } } grouping ethernet-interface-state { description "Grouping for defining Ethernet-specific operational state"; leaf hw-mac-address { type oc-yang:mac-address; description "Represenets the 'burned-in', or system-assigned, MAC address for the Ethernet interface."; } leaf negotiated-duplex-mode { type enumeration { enum FULL { description "Full duplex mode"; } enum HALF { description "Half duplex mode"; } } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the duplex mode that has been negotiated."; } leaf negotiated-port-speed { type identityref { base ETHERNET_SPEED; } description "When auto-negotiate is set to TRUE, and the interface has completed auto-negotiation with the remote peer, this value shows the interface speed that has been negotiated."; } container counters { description "Ethernet interface counters"; uses ethernet-interface-state-counters; } } // data definition statements grouping ethernet-top { description "top-level Ethernet config and state containers"; container ethernet { description "Top-level container for ethernet configuration and state"; container config { description "Configuration data for ethernet interfaces"; uses ethernet-interface-config; } container state { config false; description "State variables for Ethernet interfaces"; uses ethernet-interface-config; uses ethernet-interface-state; } } } // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds addtional Ethernet-specific configuration to interfaces model"; uses ethernet-top { when "oc-if:config/oc-if:type = 'ianaift:ethernetCsmacd'" { description "Additional interface configuration parameters when the interface type is Ethernet"; } } } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-ethernet}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.11.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[4c03653a], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-model { yang-version "1"; namespace "test:model"; prefix "gtm"; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix inet; } import openconfig-aaa-types { prefix types; } oc-ext:openconfig-version "1.0.0"; container test-data { leaf-list test-leaf-list { type string; } list test-list { key key; leaf key { type string; } } container nested-container { leaf nc-leaf { type string; } } list multiple-key-list { key "number leafref-key identityref-key union-key"; leaf number { type inet:as-number; } leaf leafref-key { type leafref { path "../number"; } } leaf identityref-key { type identityref { base "types:SYSTEM_DEFINED_ROLES"; } } leaf union-key { type union { type int32; type enumeration { enum "unbounded"; } } } container inner-container { leaf inner-data { type string; } } } } list base-list { key list-key; leaf list-key { type string; } list nested-list { key nested-list-key; leaf nested-list-key { type string; } } } augment /test-data { container augmented-container { leaf augmented-data { type string; } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-model}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[7af42c4b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-extensions { yang-version "1"; // namespace namespace "http://openconfig.net/yang/openconfig-ext"; prefix "oc-ext"; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; revision "2020-06-16" { description "Add extension for POSIX pattern statements."; reference "0.5.0"; } revision "2018-10-17" { description "Add extension for regular expression type."; reference "0.4.0"; } revision "2017-04-11" { description "rename password type to 'hashed' and clarify description"; reference "0.3.0"; } revision "2017-01-29" { description "Added extension for annotating encrypted values."; reference "0.2.0"; } revision "2015-10-09" { description "Initial OpenConfig public release"; reference "0.1.0"; } // extension statements extension openconfig-version { argument "semver" { yin-element false; } description "The OpenConfig version number for the module. This is expressed as a semantic version number of the form: x.y.z where: * x corresponds to the major version, * y corresponds to a minor version, * z corresponds to a patch version. This version corresponds to the model file within which it is defined, and does not cover the whole set of OpenConfig models. Individual YANG modules are versioned independently -- the semantic version is generally incremented only when there is a change in the corresponding file. Submodules should always have the same semantic version as their parent modules. A major version number of 0 indicates that this model is still in development (whether within OpenConfig or with industry partners), and is potentially subject to change. Following a release of major version 1, all modules will increment major revision number where backwards incompatible changes to the model are made. The minor version is changed when features are added to the model that do not impact current clients use of the model. The patch-level version is incremented when non-feature changes (such as bugfixes or clarifications to human-readable descriptions that do not impact model functionality) are made that maintain backwards compatibility. The version number is stored in the module meta-data."; } extension openconfig-hashed-value { description "This extension provides an annotation on schema nodes to indicate that the corresponding value should be stored and reported in hashed form. Hash algorithms are by definition not reversible. Clients reading the configuration or applied configuration for the node should expect to receive only the hashed value. Values written in cleartext will be hashed. This annotation may be used on nodes such as secure passwords in which the device never reports a cleartext value, even if the input is provided as cleartext."; } extension regexp-posix { description "This extension indicates that the regular expressions included within the YANG module specified are conformant with the POSIX regular expression format rather than the W3C standard that is specified by RFC6020 and RFC7950."; } extension posix-pattern { argument "pattern" { yin-element false; } description "Provides a POSIX ERE regular expression pattern statement as an alternative to YANG regular expresssions based on XML Schema Datatypes. It is used the same way as the standard YANG pattern statement defined in RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular expression string."; reference "POSIX Extended Regular Expressions (ERE) Specification: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; } extension telemetry-on-change { description "The telemetry-on-change annotation is specified in the context of a particular subtree (container, or list) or leaf within the YANG schema. Where specified, it indicates that the value stored by the nodes within the context change their value only in response to an event occurring. The event may be local to the target, for example - a configuration change, or external - such as the failure of a link. When a telemetry subscription allows the target to determine whether to export the value of a leaf in a periodic or event-based fashion (e.g., TARGET_DEFINED mode in gNMI), leaves marked as telemetry-on-change should only be exported when they change, i.e., event-based."; } extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of a subtree (containre, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new protocol message. Transport protocols may use the atomic specification to determine optimisations for sending or storing the corresponding data."; } extension operational { description "The operational annotation is specified in the context of a grouping, leaf, or leaf-list within a YANG module. It indicates that the nodes within the context are derived state on the device. OpenConfig data models divide nodes into the following three categories: - intended configuration - these are leaves within a container named 'config', and are the writable configuration of a target. - applied configuration - these are leaves within a container named 'state' and are the currently running value of the intended configuration. - derived state - these are the values within the 'state' container which are not part of the applied configuration of the device. Typically, they represent state values reflecting underlying operational counters, or protocol statuses."; } extension catalog-organization { argument "org" { yin-element false; } description "This extension specifies the organization name that should be used within the module catalogue on the device for the specified YANG module. It stores a pithy string where the YANG organization statement may contain more details."; } extension origin { argument "origin" { yin-element false; } description "This extension specifies the name of the origin that the YANG module falls within. This allows multiple overlapping schema trees to be used on a single network element without requiring module based prefixing of paths."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-extensions}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2020-06-16}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[4ee8f18b], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-terminal, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-terminal { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/terminal"; prefix "oc-sys-term"; // import some basic types import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to remote terminal services such as ssh and telnet."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // typedef statements // grouping statements grouping system-terminal-common-config { description "Common configuration data for terminal services"; leaf timeout { type uint16; units seconds; description "Set the idle timeout in seconds on terminal connections to the system for the protocol."; } leaf rate-limit { type uint16; units "conn/min"; description "Set a limit on the number of connection attempts per minute to the system for the protocol."; } leaf session-limit { type uint16; description "Set a limit on the number of simultaneous active terminal sessions to the system for the protocol (e.g., ssh, telnet, ...) "; } } grouping system-terminal-common-state { description "Common operational state data for terminal services"; } grouping system-terminal-common-top { description "Top-level grouping for common terminal service data"; container terminal-servers { description "Top-level container for terminal services"; container config { description "Configuration data for terminal services"; uses system-terminal-common-config; } container state { config false; description "Operational state data "; uses system-terminal-common-config; uses system-terminal-common-state; } } } grouping system-ssh-server-config { description "Configuration data for system ssh configuration"; leaf enable { type boolean; default true; description "Enables the ssh server. The ssh server is enabled by default."; } leaf protocol-version { type enumeration { enum V2 { description "Use SSH v2 only"; } enum V1 { description "Use SSH v1 only"; } enum V1_V2 { description "Use either SSH v1 or v2"; } } default V2; description "Set the protocol version for SSH connections to the system"; } uses system-terminal-common-config; } grouping system-ssh-server-state { description "Operational state data for ssh server"; } grouping system-ssh-server-top { description "Top-level grouping for ssh server data"; container ssh-server { description "Top-level container for ssh server"; container config { description "Configuration data for the system ssh server"; uses system-ssh-server-config; } container state { config false; description "Operational state data for the system ssh server"; uses system-ssh-server-config; uses system-ssh-server-state; } } } grouping system-telnet-server-config { description "Configuration data for telnet server"; leaf enable { type boolean; default false; description "Enables the telnet server. Telnet is disabled by default"; } uses system-terminal-common-config; } grouping system-telnet-server-state { description "Operational state data for telnet server"; } grouping system-telnet-server-top { description "Top-level grouping for telnet server "; container telnet-server { description "Top-level container for telnet terminal servers"; container config { description "Configuration data for telnet"; uses system-telnet-server-config; } container state { config false; description "Operational state data for telnet"; uses system-telnet-server-config; uses system-telnet-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-terminal}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}]=SimpleContainerNode{version=Version[50d6e0e3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-openflow-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-openflow-types { yang-version "1"; namespace "http://openconfig.net/yang/openflow/types"; prefix "openflow-types"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines types related to the Openflow configuration and operational state model."; oc-ext:openconfig-version "0.1.3"; revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.1.3"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.1.2"; } revision "2017-08-24" { description "Minor formatting fixes."; reference "0.1.1"; } revision "2017-06-01" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef failure-mode { type enumeration { enum SECURE { description "Packets and messages destined to the controllers are dropped. Flow entries continue to expire according to their timeouts."; } enum STANDALONE { description "Processes all packets using the OFPP_NORMAL reserved port. The switch acts as a legacy Ethernet switch or router."; } } description "Type to define Openflow failure mode."; } typedef transport { type enumeration { enum TCP { description "Transmission Control Protocol (TCP)."; } enum TLS { description "Transport Layer Security (TLS)."; } } description "Type to define Openflow transport protocol."; } typedef auxiliary-id { type uint8 { range "0..15"; } description "A Controller may have multiple auxiliary connections as specified by the Openflow protocol. The main Controller connection should always have the auxiliary-id set to zero. All other connections must have an auxiliary-id different from 0."; } typedef datapath-id { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}'; } description "The datapath-id type represents an OpenFlow datapath identifier. The lower 48-bits are for a MAC address, while the upper 16-bits are implementer-defined."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-openflow-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.1.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}]=SimpleContainerNode{version=Version[2c92ed72], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=test-yang, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.2.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module test-yang { yang-version 1; namespace "test-yang"; prefix "ty"; description "Test model used for uploading model"; revision "2021-05-18" { description "Initial revision of test model"; reference "1.2.3"; } container test-container { leaf test-leaf { type string; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=test-yang}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.2.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[55abd09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-radius, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-radius { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the RADIUS protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity RADIUS { base oc-aaa-types:AAA_SERVER_TYPE; description "Remote Authentication Dial In User Service (RADIUS) AAA server"; reference "RFC 2865 - Remote Authentication Dial In User Service (RADIUS)"; } // typedef statements // grouping statements grouping aaa-radius-server-config { description "Configuration data for a RADIUS server"; leaf auth-port { type oc-inet:port-number; default 1812; description "Port number for authentication requests"; } leaf acct-port { type oc-inet:port-number; default 1813; description "Port number for accounting requests"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the RADIUS server"; } leaf retransmit-attempts { type uint8; description "Number of times the system may resend a request to the RADIUS server when it is unresponsive"; } } grouping aaa-radius-server-state { description "Operational state data for a RADIUS server"; container counters { description "A collection of RADIUS related state objects."; leaf retried-access-requests { type oc-yang:counter64; description "Retransmitted Access-Request messages."; } leaf access-accepts { type oc-yang:counter64; description "Received Access-Accept messages."; } leaf access-rejects { type oc-yang:counter64; description "Received Access-Reject messages."; } leaf timeout-access-requests { type oc-yang:counter64; description "Access-Request messages that have timed-out, requiring retransmission."; } } } grouping aaa-radius-server-top { description "Top-level grouping for RADIUS server data"; container radius { description "Top-level container for RADIUS server data"; container config { description "Configuration data for RADIUS servers"; uses aaa-radius-server-config; } container state { config false; description "Operational state data for RADIUS servers"; uses aaa-radius-server-config; uses aaa-radius-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-radius}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[2f6b6a2e], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-types"; prefix "oc-types"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules that make use of these types."; oc-ext:openconfig-version "0.6.0"; revision "2019-04-16" { description "Clarify definition of timeticks64."; reference "0.6.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.5.1"; } revision "2018-05-05" { description "Add grouping of min-max-time and included them to all stats with min/max/avg"; reference "0.5.0"; } revision "2018-01-16" { description "Add interval to min/max/avg stats; add percentage stat"; reference "0.4.0"; } revision "2017-08-16" { description "Apply fix for ieetfloat32 length parameter"; reference "0.3.3"; } revision "2017-01-13" { description "Add ADDRESS_FAMILY identity"; reference "0.3.2"; } revision "2016-11-14" { description "Correct length of ieeefloat32"; reference "0.3.1"; } revision "2016-11-11" { description "Additional types - ieeefloat32 and routing-password"; reference "0.3.0"; } revision "2016-05-31" { description "OpenConfig public release"; reference "0.2.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef percentage { type uint8 { range "0..100"; } description "Integer indicating a percentage value"; } typedef std-regexp { type string; description "This type definition is a placeholder for a standard definition of a regular expression that can be utilised in OpenConfig models. Further discussion is required to consider the type of regular expressions that are to be supported. An initial proposal is POSIX compatible."; } typedef timeticks64 { type uint64; units "nanoseconds"; description "The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to."; } typedef ieeefloat32 { type binary { length "4"; } description "An IEEE 32-bit floating point number. The format of this number is of the form: 1-bit sign 8-bit exponent 23-bit fraction The floating point value is calculated using: (-1)**S * 2**(Exponent-127) * (1+Fraction)"; } typedef routing-password { type string; description "This type is indicative of a password that is used within a routing protocol which can be returned in plain text to the NMS by the local system. Such passwords are typically stored as encrypted strings. Since the encryption used is generally well known, it is possible to extract the original value from the string - and hence this format is not considered secure. Leaves specified with this type should not be modified by the system, and should be returned to the end-user in plain text. This type exists to differentiate passwords, which may be sensitive, from other string leaves. It could, for example, be used by the NMS to censor this data when viewed by particular users."; } typedef stat-interval { type uint64; units nanoseconds; description "A time interval over which a set of statistics is computed. A common usage is to report the interval over which avg/min/max stats are computed and reported."; } grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; leaf interval { type oc-types:stat-interval; description "If supported by the system, this reports the time interval over which the min/max/average statistics are computed by the system."; } } grouping min-max-time { description "Common grouping for recording the absolute time at which the minimum and maximum values occurred in the statistics"; leaf min-time { type oc-types:timeticks64; description "The absolute time at which the minimum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } leaf max-time { type oc-types:timeticks64; description "The absolute time at which the maximum value occurred. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping avg-min-max-stats-precision1 { description "Common nodes for recording average, minimum, and maximum values for a statistic. These values all have fraction-digits set to 1. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed is also reported."; leaf avg { type decimal64 { fraction-digits 1; } description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 1; } description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 1; } description "The maximum value of the statitic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision1 { description "Common grouping for recording an instantaneous statistic value in addition to avg-min-max stats"; leaf instant { type decimal64 { fraction-digits 1; } description "The instantaneous value of the statistic."; } uses avg-min-max-stats-precision1; } grouping avg-min-max-instant-stats-precision2-dB { description "Common grouping for recording dB values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dB; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dB; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dB; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dB; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-dBm { description "Common grouping for recording dBm values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units dBm; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units dBm; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units dBm; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units dBm; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-precision2-mA { description "Common grouping for recording mA values with 2 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type decimal64 { fraction-digits 2; } units mA; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 2; } units mA; description "The arithmetic mean value of the statistic over the time interval."; } leaf min { type decimal64 { fraction-digits 2; } units mA; description "The minimum value of the statistic over the time interval."; } leaf max { type decimal64 { fraction-digits 2; } units mA; description "The maximum value of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } grouping avg-min-max-instant-stats-pct { description "Common grouping for percentage statistics. Values include the instantaneous, average, minimum, and maximum statistics. Statistics are computed and reported based on a moving time interval (e.g., the last 30s). If supported by the device, the time interval over which the statistics are computed, and the times at which the minimum and maximum values occurred, are also reported."; leaf instant { type oc-types:percentage; description "The instantaneous percentage value."; } leaf avg { type oc-types:percentage; description "The arithmetic mean value of the percentage measure of the statistic over the time interval."; } leaf min { type oc-types:percentage; description "The minimum value of the percentage measure of the statistic over the time interval."; } leaf max { type oc-types:percentage; description "The maximum value of the percentage measure of the statistic over the time interval."; } uses stat-interval-state; uses min-max-time; } identity ADDRESS_FAMILY { description "A base identity for all address families"; } identity IPV4 { base ADDRESS_FAMILY; description "The IPv4 address family"; } identity IPV6 { base ADDRESS_FAMILY; description "The IPv6 address family"; } identity MPLS { base ADDRESS_FAMILY; description "The MPLS address family"; } identity L2_ETHERNET { base ADDRESS_FAMILY; description "The 802.3 Ethernet address family"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.6.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[21259db4], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-aaa { yang-version "1"; // namespace namespace "http://openconfig.net/yang/aaa"; prefix "oc-aaa"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-aaa-types { prefix oc-aaa-types; } include openconfig-aaa-tacacs; include openconfig-aaa-radius; // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to authorization, authentication, and accounting (AAA) management. Portions of this model reuse data definitions or structure from RFC 7317 - A YANG Data Model for System Management"; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed for TACACS and RADIUS."; reference "0.5.0"; } revision "2019-10-28" { description "Fix bug in when statement path"; reference "0.4.3"; } revision "2019-08-20" { description "Fix identity prefixes and when statement paths"; reference "0.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2018-04-12" { description "Add when conditions, correct identities"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // identity statements // grouping statements grouping aaa-servergroup-common-config { description "Configuration data for AAA server groups"; leaf name { type string; description "Name for the server group"; } leaf type { type identityref { base oc-aaa-types:AAA_SERVER_TYPE; } description "AAA server type -- all servers in the group must be of this type"; } } grouping aaa-servergroup-common-state { description "Operational state data for AAA server groups"; //TODO: add list of group members as opstate } grouping aaa-servergroup-common-top { description "Top-level grouping for AAA server groups"; container server-groups { description "Enclosing container for AAA server groups"; list server-group { key "name"; description "List of AAA server groups. All servers in a group must have the same type as indicated by the server type."; leaf name { type leafref { path "../config/name"; } description "Reference to configured name of the server group"; } container config { description "Configuration data for each server group"; uses aaa-servergroup-common-config; } container state { config false; description "Operational state data for each server group"; uses aaa-servergroup-common-config; uses aaa-servergroup-common-state; } uses aaa-server-top; } } } grouping aaa-server-config { description "Common configuration data for AAA servers"; leaf name { type string; description "Name assigned to the server"; } leaf address { type oc-inet:ip-address; description "Address of the authentication server"; } leaf timeout { type uint16; units seconds; description "Set the timeout in seconds on responses from the AAA server"; } } grouping aaa-server-state { description "Common operational state data for AAA servers"; leaf connection-opens { type oc-yang:counter64; description "Number of new connection requests sent to the server, e.g. socket open"; } leaf connection-closes { type oc-yang:counter64; description "Number of connection close requests sent to the server, e.g. socket close"; } leaf connection-aborts { type oc-yang:counter64; description "Number of aborted connections to the server. These do not include connections that are close gracefully."; } leaf connection-failures { type oc-yang:counter64; description "Number of connection failures to the server"; } leaf connection-timeouts { type oc-yang:counter64; description "Number of connection timeouts to the server"; } leaf messages-sent { type oc-yang:counter64; description "Number of messages sent to the server"; } leaf messages-received { type oc-yang:counter64; description "Number of messages received by the server"; } leaf errors-received { type oc-yang:counter64; description "Number of error messages received from the server"; } } grouping aaa-server-top { description "Top-level grouping for list of AAA servers"; container servers { description "Enclosing container the list of servers"; list server { key "address"; description "List of AAA servers"; leaf address { type leafref { path "../config/address"; } description "Reference to the configured address of the AAA server"; } container config { description "Configuration data "; uses aaa-server-config; } container state { config false; description "Operational state data "; uses aaa-server-config; uses aaa-server-state; } uses aaa-tacacs-server-top { when "../../config/type = 'oc-aaa:TACACS'"; } uses aaa-radius-server-top { when "../../config/type = 'oc-aaa:RADIUS'"; } } } } grouping aaa-admin-config { description "Configuration data for the system built-in administrator / root user account"; leaf admin-password { type string; oc-ext:openconfig-hashed-value; description "The admin/root password, supplied as a cleartext string. The system should hash and only store the password as a hashed value."; } leaf admin-password-hashed { type oc-aaa-types:crypt-password-type; description "The admin/root password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } } grouping aaa-admin-state { description "Operational state data for the root user"; leaf admin-username { type string; description "Name of the administrator user account, e.g., admin, root, etc."; } } grouping aaa-authentication-admin-top { description "Top-level grouping for root user configuration and state data"; container admin-user { description "Top-level container for the system root or admin user configuration and operational state"; container config { description "Configuration data for the root user account"; uses aaa-admin-config; } container state { config false; description "Operational state data for the root user account"; uses aaa-admin-config; uses aaa-admin-state; } } } grouping aaa-authentication-user-config { description "Configuration data for local users"; leaf username { type string; description "Assigned username for this user"; } leaf password { type string; oc-ext:openconfig-hashed-value; description "The user password, supplied as cleartext. The system must hash the value and only store the hashed value."; } leaf password-hashed { type oc-aaa-types:crypt-password-type; description "The user password, supplied as a hashed value using the notation described in the definition of the crypt-password-type."; } leaf ssh-key { type string; description "SSH public key for the user (RSA or DSA)"; } leaf role { type union { type string; type identityref { base oc-aaa-types:SYSTEM_DEFINED_ROLES; } } description "Role assigned to the user. The role may be supplied as a string or a role defined by the SYSTEM_DEFINED_ROLES identity."; } } grouping aaa-authentication-user-state { description "Operational state data for local users"; } grouping aaa-authentication-user-top { description "Top-level grouping for local users"; container users { description "Enclosing container list of local users"; list user { key "username"; description "List of local users on the system"; leaf username { type leafref { path "../config/username"; } description "References the configured username for the user"; } container config { description "Configuration data for local users"; uses aaa-authentication-user-config; } container state { config false; description "Operational state data for local users"; uses aaa-authentication-user-config; uses aaa-authentication-user-state; } } } } grouping aaa-accounting-methods-common { description "Common definitions for accounting methods"; leaf-list accounting-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: in YANG 1.1 this should be converted to a leafref to //point to the server group name. } ordered-by user; description "An ordered list of methods used for AAA accounting for this event type. The method is defined by the destination for accounting data, which may be specified as the group of all TACACS+/RADIUS servers, a defined server group, or the local system."; } } grouping aaa-accounting-events-config { description "Configuration data for AAA accounting events"; leaf event-type { type identityref { base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE; } description "The type of activity to record at the AAA accounting server"; } leaf record { type enumeration { enum START_STOP { description "Send START record to the accounting server at the beginning of the activity, and STOP record at the end of the activity."; } enum STOP { description "Send STOP record to the accounting server when the user activity completes"; } } description "Type of record to send to the accounting server for this activity type"; } } grouping aaa-accounting-events-state { description "Operational state data for accounting events"; } grouping aaa-accounting-events-top { description "Top-level grouping for accounting events"; container events { description "Enclosing container for defining handling of events for accounting"; list event { key "event-type"; description "List of events subject to accounting"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type being logged at the accounting server"; } container config { description "Configuration data for accounting events"; uses aaa-accounting-events-config; } container state { config false; description "Operational state data for accounting events"; uses aaa-accounting-events-config; uses aaa-accounting-events-state; } } } } grouping aaa-accounting-config { description "Configuration data for event accounting"; uses aaa-accounting-methods-common; } grouping aaa-accounting-state { description "Operational state data for event accounting services"; } grouping aaa-accounting-top { description "Top-level grouping for user activity accounting"; container accounting { description "Top-level container for AAA accounting"; container config { description "Configuration data for user activity accounting."; uses aaa-accounting-config; } container state { config false; description "Operational state data for user accounting."; uses aaa-accounting-config; uses aaa-accounting-state; } uses aaa-accounting-events-top; } } grouping aaa-authorization-methods-config { description "Common definitions for authorization methods for global and per-event type"; leaf-list authorization-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; } ordered-by user; description "Ordered list of methods for authorizing commands. The first method that provides a response (positive or negative) should be used. The list may contain a well-defined method such as the set of all TACACS or RADIUS servers, or the name of a defined AAA server group. The system must validate that the named server group exists."; } } grouping aaa-authorization-events-config { description "Configuration data for AAA authorization events"; leaf event-type { type identityref { base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE; } description "The type of event to record at the AAA authorization server"; } } grouping aaa-authorization-events-state { description "Operational state data for AAA authorization events"; } grouping aaa-authorization-events-top { description "Top-level grouping for authorization events"; container events { description "Enclosing container for the set of events subject to authorization"; list event { key "event-type"; description "List of events subject to AAA authorization"; leaf event-type { type leafref { path "../config/event-type"; } description "Reference to the event-type list key"; } container config { description "Configuration data for each authorized event"; uses aaa-authorization-events-config; } container state { config false; description "Operational state data for each authorized activity"; uses aaa-authorization-events-config; uses aaa-authorization-events-state; } } } } grouping aaa-authorization-config { description "Configuration data for AAA authorization"; uses aaa-authorization-methods-config; } grouping aaa-authorization-state { description "Operational state data for AAA authorization"; } grouping aaa-authorization-top { description "Top-level grouping for AAA authorization"; container authorization { description "Top-level container for AAA authorization configuration and operational state data"; container config { description "Configuration data for authorization based on AAA methods"; uses aaa-authorization-config; } container state { config false; description "Operational state data for authorization based on AAA"; uses aaa-authorization-config; uses aaa-authorization-state; } uses aaa-authorization-events-top; } } grouping aaa-authentication-config { description "Configuration data for global authentication"; leaf-list authentication-method { type union { type identityref { base oc-aaa-types:AAA_METHOD_TYPE; } type string; //TODO: string should be a leafref to a defined //server group. this will be possible in YANG 1.1 //type leafref { //path "/aaa/server-groups/server-group/config/name"; //} } ordered-by user; description "Ordered list of authentication methods for users. This can be either a reference to a server group, or a well- defined designation in the AAA_METHOD_TYPE identity. If authentication fails with one method, the next defined method is tried -- failure of all methods results in the user being denied access."; } } grouping aaa-authentication-state { description "Operational state data for global authentication"; } grouping aaa-authentication-top { description "Top-level grouping for top-level authentication"; container authentication { description "Top-level container for global authentication data"; container config { description "Configuration data for global authentication services"; uses aaa-authentication-config; } container state { config false; description "Operational state data for global authentication services"; uses aaa-authentication-config; uses aaa-authentication-state; } uses aaa-authentication-admin-top; uses aaa-authentication-user-top; } } grouping aaa-config { description "Configuration data for top level AAA"; } grouping aaa-state { description "Operational state data for top level AAA"; } grouping aaa-top { description "Top-level grouping for AAA services"; container aaa { description "Top-level container for AAA services"; container config { description "Configuration data for top level AAA services"; uses aaa-config; } container state { config false; description "Operational state data for top level AAA services "; uses aaa-config; uses aaa-state; } uses aaa-authentication-top; uses aaa-authorization-top; uses aaa-accounting-top; uses aaa-servergroup-common-top; } } // data definition statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}]=SimpleContainerNode{version=Version[4b8b8f20], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-license, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-license { yang-version "1"; namespace "http://openconfig.net/yang/license"; prefix "oc-license"; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for licenses."; oc-ext:openconfig-version "0.2.0"; revision "2020-04-22" { description "Make license-data a union of a string or binary."; reference "0.2.0"; } revision "2020-01-07" { description "Initial revision"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; grouping license-config { description "Configuration data for license"; leaf license-id { type string; description "License ID. A string that uniquelly identifies the license. The platform should list all the licenses it supports being activated."; } leaf license-data { type union { type binary; type string; } description "The contents of the licence (if required) - which may be supplied as a binary blob, or a simple string value. If this value is considered sensitive, it may be read as an empty value."; } leaf active { type boolean; default false; description "The activation state of the license."; } } grouping license-state { description "State data for license"; leaf description { type string; description "The license description."; } leaf issue-date { type uint64; description "The date and time at which the license was issued, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC)."; } leaf expiration-date { type uint64; description "The date and time at which the license will expire, expressed as the number of nanoseconds since the Unix Epoch (January 1, 1970, 00:00 UTC). Zero if it does not expire."; } leaf in-use { type boolean; description "The license is in use. Different from active. This states that the license is effectively being used in addition to being active. If license for feature X was activated but feature X is not being used, then this should be false."; } leaf expired { type boolean; description "The license has expired."; } leaf valid { type boolean; description "The license is valid. Can be activated in the system or platform."; } } grouping licenses-top { description "Top-level grouping for licenses."; container licenses { description "Enclosing container for list of licenses"; list license { key "license-id"; description "List of licenses."; leaf license-id { type leafref { path "../config/license-id"; } description "Reference to license id list key"; } container config { description "Configuration data for license"; uses license-config; } container state { config false; description "Operational state data for license."; uses license-config; uses license-state; } } } } grouping license-top { description "Top-level for the license model"; container license { description "Container for license model"; uses licenses-top; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-license}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}]=SimpleContainerNode{version=Version[438865f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-interfaces { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces"; prefix "oc-if"; // import some basic types import ietf-interfaces { prefix ietf-if; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing network interfaces and subinterfaces. This module also defines convenience types / groupings for other models to create references to interfaces: base-interface-ref (type) - reference to a base interface interface-ref (grouping) - container for reference to a interface + subinterface interface-ref-state (grouping) - container for read-only (opstate) reference to interface + subinterface This model reuses data items defined in the IETF YANG model for interfaces described by RFC 7223 with an alternate structure (particularly for operational state data) and with additional configuration items. Portions of this code were derived from IETF RFC 7223. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "2.5.0"; revision "2021-04-06" { description "Add leaves for management and cpu interfaces"; reference "2.5.0"; } revision "2019-11-19" { description "Update description of interface name."; reference "2.4.3"; } revision "2019-07-10" { description "Remove redundant nanosecond units statements to reflect universal definition of timeticks64 type."; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.4.1"; } revision "2018-08-07" { description "Add leaf to indicate whether an interface is physical or logical."; reference "2.4.0"; } revision "2018-07-02" { description "Add in-pkts and out-pkts in counters"; reference "2.3.2"; } revision "2018-04-24" { description "Clarified behavior of last-change state leaf"; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2017-04-03" { description "Update copyright notice."; reference "1.1.1"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // typedef statements typedef base-interface-ref { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reusable type for by-name reference to a base interface. This type may be used in cases where ability to reference a subinterface is not required."; } typedef interface-id { type string; description "User-defined identifier for an interface, generally used to name a interface reference. The id can be arbitrary but a useful convention is to use a combination of base interface name and subinterface index."; } // grouping statements grouping interface-ref-common { description "Reference leafrefs to interface / subinterface"; leaf interface { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Reference to a base interface. If a reference to a subinterface is required, this leaf must be specified to indicate the base interface."; } leaf subinterface { type leafref { path "/oc-if:interfaces/" + "oc-if:interface[oc-if:name=current()/../interface]/" + "oc-if:subinterfaces/oc-if:subinterface/oc-if:index"; } description "Reference to a subinterface -- this requires the base interface to be specified using the interface leaf in this container. If only a reference to a base interface is requuired, this leaf should not be set."; } } grouping interface-ref-state-container { description "Reusable opstate w/container for a reference to an interface or subinterface"; container state { config false; description "Operational state for interface-ref"; uses interface-ref-common; } } grouping interface-ref { description "Reusable definition for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; container config { description "Configured reference to interface / subinterface"; oc-ext:telemetry-on-change; uses interface-ref-common; } uses interface-ref-state-container; } } grouping interface-ref-state { description "Reusable opstate w/container for a reference to an interface or subinterface"; container interface-ref { description "Reference to an interface or subinterface"; uses interface-ref-state-container; } } grouping base-interface-ref-state { description "Reusable opstate w/container for a reference to a base interface (no subinterface)."; container state { config false; description "Operational state for base interface reference"; leaf interface { type base-interface-ref; description "Reference to a base interface."; } } } grouping interface-common-config { description "Configuration data data nodes common to physical interfaces and subinterfaces"; leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored datastore. Specifically, if the device supports ':startup', when ifAlias is read the device MUST return the value of 'description' in the 'startup' datastore, and when it is written, it MUST be written to the 'running' and 'startup' datastores. Note that it is up to the implementation to decide whether to modify this single leaf in 'startup' or perform an implicit copy-config from 'running' to 'startup'. If the device does not support ':startup', ifAlias MUST be mapped to the 'description' leaf in the 'running' datastore."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the 'running' datastore to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the 'running' datastore are reflected in ifAdminStatus, but if ifAdminStatus is changed over SNMP, this leaf is not affected."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } } grouping interface-phys-config { description "Configuration data for physical interfaces"; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. The 'config false' list interfaces/interface[name]/state contains the currently existing interfaces on the device. If a client tries to create configuration for a system-controlled interface that is not present in the corresponding state list, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. The IETF model in RFC 7223 provides YANG features for the following (i.e., pre-provisioning and arbitrary-names), however they are omitted here: If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the /interfaces/interface[name]/state list."; } leaf type { type identityref { base ietf-if:interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf mtu { type uint16; description "Set the max transmission unit size in octets for the physical interface. If this is not set, the mtu is set to the operational default -- e.g., 1514 bytes on an Ethernet interface."; } leaf loopback-mode { type boolean; default false; description "When set to true, the interface is logically looped back, such that packets that are forwarded via the interface are received on the same interface."; } uses interface-common-config; } grouping interface-phys-holdtime-config { description "Configuration data for interface hold-time settings -- applies to physical interfaces."; leaf up { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from down to up. A zero value means dampening is turned off, i.e., immediate notification."; } leaf down { type uint32; units milliseconds; default 0; description "Dampens advertisement when the interface transitions from up to down. A zero value means dampening is turned off, i.e., immediate notification."; } } grouping interface-phys-holdtime-state { description "Operational state data for interface hold-time."; } grouping interface-phys-holdtime-top { description "Top-level grouping for setting link transition dampening on physical and other types of interfaces."; container hold-time { description "Top-level container for hold-time settings to enable dampening advertisements of interface transitions."; container config { description "Configuration data for interface hold-time settings."; oc-ext:telemetry-on-change; uses interface-phys-holdtime-config; } container state { config false; description "Operational state data for interface hold-time."; uses interface-phys-holdtime-config; uses interface-phys-holdtime-state; } } } grouping interface-common-state { description "Operational state data (in addition to intended configuration) at the global level for this interface"; oc-ext:operational; leaf ifindex { type uint32; description "System assigned number for each interface. Corresponds to ifIndex object in SNMP Interface MIB"; reference "RFC 2863 - The Interfaces Group MIB"; oc-ext:telemetry-on-change; } leaf admin-status { type enumeration { enum UP { description "Ready to pass packets."; } enum DOWN { description "Not ready to pass packets and not in some test mode."; } enum TESTING { //TODO: This is generally not supported as a configured //admin state, though it's in the standard interfaces MIB. //Consider removing it. description "In some test mode."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The desired state of the interface. In RFC 7223 this leaf has the same read semantics as ifAdminStatus. Here, it reflects the administrative state as set by enabling or disabling the interface."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; oc-ext:telemetry-on-change; } leaf oper-status { type enumeration { enum UP { value 1; description "Ready to pass packets."; } enum DOWN { value 2; description "The interface does not pass any packets."; } enum TESTING { value 3; description "In some test mode. No operational packets can be passed."; } enum UNKNOWN { value 4; description "Status cannot be determined for some reason."; } enum DORMANT { value 5; description "Waiting for some external event."; } enum NOT_PRESENT { value 6; description "Some component (typically hardware) is missing."; } enum LOWER_LAYER_DOWN { value 7; description "Down due to state of lower-layer interface(s)."; } } //TODO:consider converting to an identity to have the //flexibility to remove some values defined by RFC 7223 that //are not used or not implemented consistently. mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; oc-ext:telemetry-on-change; } leaf last-change { type oc-types:timeticks64; description "This timestamp indicates the absolute time of the last state change of the interface (e.g., up-to-down transition). This is different than the SNMP ifLastChange object in the standard interface MIB in that it is not relative to the system boot time (i.e,. sysUpTime). The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } leaf logical { type boolean; description "When set to true, the interface is a logical interface which does not have an associated physical port or channel on the system."; oc-ext:telemetry-on-change; } leaf management { type boolean; description "When set to true, the interface is a dedicated management interface that is not connected to dataplane interfaces. It may be used to connect the system to an out-of-band management network, for example."; oc-ext:telemetry-on-change; } leaf cpu { type boolean; description "When set to true, the interface is for traffic that is handled by the system CPU, sometimes also called the control plane interface. On systems that represent the CPU interface as an Ethernet interface, for example, this leaf should be used to distinguish the CPU interface from dataplane interfaces."; oc-ext:telemetry-on-change; } } grouping interface-counters-state { description "Operational state representing interface counters and statistics."; //TODO: we may need to break this list of counters into those //that would appear for physical vs. subinterface or logical //interfaces. For now, just replicating the full stats //grouping to both interface and subinterface. oc-ext:operational; container counters { description "A collection of interface-related statistics objects."; leaf in-octets { type oc-yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-pkts { type oc-yang:counter64; description "The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf in-unicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type oc-yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type oc-yang:counter64; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type oc-yang:counter64; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf in-fcs-errors { type oc-yang:counter64; description "Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. Discontinuities in the value of this counter can occur when the device is re-initialization as indicated by the value of 'last-clear'."; } leaf out-octets { type oc-yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-pkts { type oc-yang:counter64; description "The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc."; reference "RFC 2819: Remote Network Monitoring Management Information Base"; } leaf out-unicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type oc-yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type oc-yang:counter64; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type oc-yang:counter64; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'last-clear'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } leaf carrier-transitions { type oc-yang:counter64; description "Number of times the interface state has transitioned between up and down since the time the device restarted or the last-clear time, whichever is most recent."; oc-ext:telemetry-on-change; } leaf last-clear { type oc-types:timeticks64; description "Timestamp of the last time the interface counters were cleared. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; oc-ext:telemetry-on-change; } } } // data definition statements grouping sub-unnumbered-config { description "Configuration data for unnumbered subinterfaces"; leaf enabled { type boolean; default false; description "Indicates that the subinterface is unnumbered. By default the subinterface is numbered, i.e., expected to have an IP address configuration."; } } grouping sub-unnumbered-state { description "Operational state data unnumbered subinterfaces"; } grouping sub-unnumbered-top { description "Top-level grouping unnumbered subinterfaces"; container unnumbered { description "Top-level container for setting unnumbered interfaces. Includes reference the interface that provides the address information"; container config { description "Configuration data for unnumbered interface"; oc-ext:telemetry-on-change; uses sub-unnumbered-config; } container state { config false; description "Operational state data for unnumbered interfaces"; uses sub-unnumbered-config; uses sub-unnumbered-state; } uses oc-if:interface-ref; } } grouping subinterfaces-config { description "Configuration data for subinterfaces"; leaf index { type uint32; default 0; description "The index of the subinterface, or logical interface number. On systems with no support for subinterfaces, or not using subinterfaces, this value should default to 0, i.e., the default subinterface."; } uses interface-common-config; } grouping subinterfaces-state { description "Operational state data for subinterfaces"; oc-ext:operational; leaf name { type string; description "The system-assigned name for the sub-interface. This MAY be a combination of the base interface name and the subinterface index, or some other convention used by the system."; oc-ext:telemetry-on-change; } uses interface-common-state; uses interface-counters-state; } grouping subinterfaces-top { description "Subinterface data for logical interfaces associated with a given interface"; container subinterfaces { description "Enclosing container for the list of subinterfaces associated with a physical interface"; list subinterface { key "index"; description "The list of subinterfaces (logical interfaces) associated with a physical interface"; leaf index { type leafref { path "../config/index"; } description "The index number of the subinterface -- used to address the logical interface"; } container config { description "Configurable items at the subinterface level"; oc-ext:telemetry-on-change; uses subinterfaces-config; } container state { config false; description "Operational state data for logical interfaces"; uses subinterfaces-config; uses subinterfaces-state; } } } } grouping interfaces-top { description "Top-level grouping for interface configuration and operational state data"; container interfaces { description "Top level container for interfaces, including configuration and state data."; list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type leafref { path "../config/name"; } description "References the name of the interface"; //TODO: need to consider whether this should actually //reference the name in the state subtree, which //presumably would be the system-assigned name, or the //configured name. Points to the config/name now //because of YANG 1.0 limitation that the list //key must have the same "config" as the list, and //also can't point to a non-config node. } container config { description "Configurable items at the global, physical interface level"; oc-ext:telemetry-on-change; uses interface-phys-config; } container state { config false; description "Operational state data at the global interface level"; uses interface-phys-config; uses interface-common-state; uses interface-counters-state; } uses interface-phys-holdtime-top; uses subinterfaces-top; } } } uses interfaces-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}]=SimpleContainerNode{version=Version[43475874], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-platform, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.13.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-platform { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform"; prefix "oc-platform"; import openconfig-platform-types { prefix oc-platform-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-yang-types { prefix oc-yang; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines a data model for representing a system component inventory, which can include hardware or software elements arranged in an arbitrary structure. The primary relationship supported by the model is containment, e.g., components containing subcomponents. It is expected that this model reflects every field replacable unit on the device at a minimum (i.e., additional information may be supplied about non-replacable components). Every element in the inventory is termed a 'component' with each component expected to have a unique name and type, and optionally a unique system-assigned identifier and FRU number. The uniqueness is guaranteed by the system within the device. Components may have properties defined by the system that are modeled as a list of key-value pairs. These may or may not be user-configurable. The model provides a flag for the system to optionally indicate which properties are user configurable. Each component also has a list of 'subcomponents' which are references to other components. Appearance in a list of subcomponents indicates a containment relationship as described above. For example, a linecard component may have a list of references to port components that reside on the linecard. This schema is generic to allow devices to express their own platform-specific structure. It may be augmented by additional component type-specific schemas that provide a common structure for well-known component types. In these cases, the system is expected to populate the common component schema, and may optionally also represent the component and its properties in the generic structure. The properties for each component may include dynamic values, e.g., in the 'state' part of the schema. For example, a CPU component may report its utilization, temperature, or other physical properties. The intent is to capture all platform- specific physical data in one location, including inventory (presence or absence of a component) and state (physical attributes or status)."; oc-ext:openconfig-version "0.13.0"; revision "2021-01-18" { description "Add container for software module component"; reference "0.13.0"; } revision "2019-04-16" { description "Fix bug in parent path reference"; reference "0.12.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.12.1"; } revision "2018-06-29" { description "Added location description for components"; reference "0.12.0"; } revision "2018-06-03" { description "Added parent reference, empty flag and preconfiguration for components"; reference "0.11.0"; } revision "2018-04-20" { description "Added new per-component state data: mfg-date and removable"; reference "0.10.0"; } revision "2018-01-30" { description "Amended approach for modelling CPU - rather than having a local CPU utilisation state variable, a component with a CPU should create a subcomponent of type CPU to report statistics."; reference "0.9.0"; } revision "2018-01-16" { description "Added new per-component common data; add temp alarm; moved hardware-port reference to port model"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping platform-component-properties-config { description "System-defined configuration data for component properties"; leaf name { type string; description "System-supplied name of the property -- this is typically non-configurable"; } leaf value { type union { type string; type boolean; type int64; type uint64; type decimal64 { fraction-digits 2; } } description "Property values can take on a variety of types. Signed and unsigned integer types may be provided in smaller sizes, e.g., int8, uint16, etc."; } } grouping platform-component-properties-state { description "Operational state data for component properties"; leaf configurable { type boolean; description "Indication whether the property is user-configurable"; } } grouping platform-component-properties-top { description "Top-level grouping "; container properties { description "Enclosing container "; list property { key "name"; description "List of system properties for the component"; leaf name { type leafref { path "../config/name"; } description "Reference to the property name."; } container config { description "Configuration data for each property"; uses platform-component-properties-config; } container state { config false; description "Operational state data for each property"; uses platform-component-properties-config; uses platform-component-properties-state; } } } } grouping platform-subcomponent-ref-config { description "Configuration data for subcomponent references"; leaf name { type leafref { path "../../../../../component/config/name"; } description "Reference to the name of the subcomponent"; } } grouping platform-subcomponent-ref-state { description "Operational state data for subcomponent references"; } grouping platform-subcomponent-ref-top { description "Top-level grouping for list of subcomponent references"; container subcomponents { description "Enclosing container for subcomponent references"; list subcomponent { key "name"; description "List of subcomponent references"; leaf name { type leafref { path "../config/name"; } description "Reference to the name list key"; } container config { description "Configuration data for the subcomponent"; uses platform-subcomponent-ref-config; } container state { config false; description "Operational state data for the subcomponent"; uses platform-subcomponent-ref-config; uses platform-subcomponent-ref-state; } } } } grouping platform-component-config { description "Configuration data for components"; leaf name { type string; description "Device name for the component -- this may not be a configurable parameter on many implementations. Where component preconfiguration is supported, for example, the component name may be configurable."; } } grouping platform-component-state { description "Operational state data for device components."; leaf type { type union { type identityref { base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT; } type identityref { base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT; } } description "Type of component as identified by the system"; } leaf id { type string; description "Unique identifier assigned by the system for the component"; } leaf location { type string; description "System-supplied description of the location of the component within the system. This could be a bay position, slot number, socket location, etc. For component types that have an explicit slot-id attribute, such as linecards, the system should populate the more specific slot-id."; } leaf description { type string; description "System-supplied description of the component"; } leaf mfg-name { type string; description "System-supplied identifier for the manufacturer of the component. This data is particularly useful when a component manufacturer is different than the overall device vendor."; } leaf mfg-date { type oc-yang:date; description "System-supplied representation of the component's manufacturing date."; } leaf hardware-version { type string; description "For hardware components, this is the hardware revision of the component."; } leaf firmware-version { type string; description "For hardware components, this is the version of associated firmware that is running on the component, if applicable."; } leaf software-version { type string; description "For software components such as operating system or other software module, this is the version of the currently running software."; } leaf serial-no { type string; description "System-assigned serial number of the component."; } leaf part-no { type string; description "System-assigned part number for the component. This should be present in particular if the component is also an FRU (field replaceable unit)"; } leaf removable { type boolean; description "If true, this component is removable or is a field replaceable unit"; } leaf oper-status { type identityref { base oc-platform-types:COMPONENT_OPER_STATUS; } description "If applicable, this reports the current operational status of the component."; } leaf empty { type boolean; default false; description "The empty leaf may be used by the device to indicate that a component position exists but is not populated. Using this flag, it is possible for the management system to learn how many positions are available (e.g., occupied vs. empty linecard slots in a chassis)."; } leaf parent { type leafref { path "../../../component/config/name"; } description "Reference to the name of the parent component. Note that this reference must be kept synchronized with the corresponding subcomponent reference from the parent component."; } } grouping platform-component-temp-alarm-state { description "Temperature alarm data for platform components"; // TODO(aashaikh): consider if these leaves could be in a // reusable grouping (not temperature-specific); threshold // may always need to be units specific. leaf alarm-status { type boolean; description "A value of true indicates the alarm has been raised or asserted. The value should be false when the alarm is cleared."; } leaf alarm-threshold { type uint32; description "The threshold value that was crossed for this alarm."; } leaf alarm-severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity of the current alarm."; } } grouping platform-component-power-state { description "Power-related operational state for device components."; leaf allocated-power { type uint32; units watts; description "Power allocated by the system for the component."; } leaf used-power { type uint32; units watts; description "Actual power used by the component."; } } grouping platform-component-temp-state { description "Temperature state data for device components"; container temperature { description "Temperature in degrees Celsius of the component. Values include the instantaneous, average, minimum, and maximum statistics. If avg/min/max statistics are not supported, the target is expected to just supply the instant value"; uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius; uses platform-component-temp-alarm-state; } } grouping platform-component-memory-state { description "Per-component memory statistics"; container memory { description "For components that have associated memory, these values report information about available and utilized memory."; leaf available { type uint64; units bytes; description "The available memory physically installed, or logically allocated to the component."; } // TODO(aashaikh): consider if this needs to be a // min/max/avg statistic leaf utilized { type uint64; units bytes; description "The memory currently in use by processes running on the component, not considering reserved memory that is not available for use."; } } } grouping platform-anchors-top { description "This grouping is used to add containers for components that are common across systems, but do not have a defined schema within the openconfig-platform module. Containers should be added to this grouping for components that are expected to exist in multiple systems, with corresponding modules augmenting the config/state containers directly."; container chassis { description "Data for chassis components"; container config { description "Configuration data for chassis components"; } container state { config false; description "Operational state data for chassis components"; } } // TODO(aashaikh): linecard container is already defined in // openconfig-platform-linecard; will move to this module // in future. /* container linecard { description "Data for linecard components"; container config { description "Configuration data for linecard components"; } container state { config false; description "Operational state data for linecard components"; } } */ container port { description "Data for physical port components"; container config { description "Configuration data for physical port components"; } container state { config false; description "Operational state data for physical port components"; } } // TODO(aashaikh): transceiver container is already defined in // openconfig-platform-transceiver; will move to this module // in future. /* container transceiver { description "Data for transceiver components"; container config { description "Configuration data for transceiver components"; } container state { config false; description "Operational state data for transceiver components"; } } */ container power-supply { description "Data for power supply components"; container config { description "Configuration data for power supply components"; } container state { config false; description "Operational state data for power supply components"; } } container fan { description "Data for fan components"; container config { description "Configuration data for fan components"; } container state { config false; description "Operational state data for fan components"; } } container fabric { description "Data for fabric components"; container config { description "Configuration data for fabric components"; } container state { config false; description "Operational state data for fabric components"; } } container storage { description "Data for storage components"; container config { description "Configuration data for storage components"; } container state { config false; description "Operational state data for storage components"; } } container cpu { description "Data for cpu components"; container config { description "Configuration data for cpu components"; } container state { config false; description "Operational state data for cpu components"; } } container integrated-circuit { description "Data for chip components, such as ASIC, NPUs, etc."; container config { description "Configuration data for chip components"; } container state { config false; description "Operational state data for chip components"; } } container backplane { description "Data for backplane components"; container config { description "Configuration data for backplane components"; } container state { config false; description "Operational state data for backplane components"; } } container software-module { description "Data for software module components, i.e., for components with type=SOFTWARE_MODULE"; container config { description "Configuration data for software module components"; } container state { config false; description "Operational state data for software module components"; } } } grouping platform-component-top { description "Top-level grouping for components in the device inventory"; container components { description "Enclosing container for the components in the system."; list component { key "name"; description "List of components, keyed by component name."; leaf name { type leafref { path "../config/name"; } description "References the component name"; } container config { description "Configuration data for each component"; uses platform-component-config; } container state { config false; description "Operational state data for each component"; uses platform-component-config; uses platform-component-state; uses platform-component-temp-state; uses platform-component-memory-state; uses platform-component-power-state; } uses platform-component-properties-top; uses platform-subcomponent-ref-top; uses platform-anchors-top; } } } // data definition statements uses platform-component-top; // augments } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-platform}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.13.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}]=SimpleContainerNode{version=Version[3cd5d61f], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-messages, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.0.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-messages { yang-version "1"; // namespace namespace "http://openconfig.net/yang/messages"; prefix "oc-messages"; // import some basic types import openconfig-extensions { prefix "oc-ext"; } import openconfig-system-logging { prefix "oc-log"; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to Syslog messages that a device may generate. These messages are historically obtained through the Syslog transport, however this module allows for obtaining them through an alternative transport, such as a Subscribe operation over an RPC. This module does not usurp traditional syslog servers, which may still be configured through the /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; oc-ext:openconfig-version "0.0.1"; revision "2018-08-13" { description "Initial draft."; reference "0.0.1"; } // identity statements identity DEBUG_SERVICE { description "Base identity for debug services. Identities within this base identity are to be augmented in by vendors."; } // grouping statements grouping messages-config { description "Configuration data for defining Syslog message severity."; leaf severity { type oc-log:syslog-severity; description "Specifies that only messages of the given severity (or greater severity) are sent over the RPC. This is analogous to differentiating which severity is to be sent to legacy Syslog servers, as opposed to local buffer or files."; } } grouping messages-state { description "Operational state data for Syslog messages."; container message { oc-ext:telemetry-atomic; config false; description "Syslog messages the client is Subscribing to. This is all messages currently configured to be sent according to syslog-severity."; reference "IETF RFC 5424 - The Syslog Protocol"; // Decide if it is OK to include ALL in this leaf. leaf msg { type string; description "Message payload. If other leafs within this container not supported, this leaf MAY include the entire message, inclding pri, procid, app-name etc.."; } leaf priority { type uint8; description "The Priority value (PRIVAL) represents both the Facility and Severity."; reference "IETF RFC 5424, Section 6.2.1"; } leaf app-name { type string; description "The APP-NAME field SHOULD identify the device or application that originated the message."; reference "IETF RFC 5424, Section 6.2.5."; } leaf procid { type string; description "PROCID is a value that is included in the message, having no interoperable meaning, except that a change in the value indicates there has been a discontinuity in syslog reporting."; reference "IETF RFC 5424, Section 6.2.6."; } leaf msgid { type string; description "The MSGID SHOULD identify the type of message. For example, a firewall might use the MSGID 'TCPIN' for incoming TCP traffic and the MSGID 'TCPOUT' for outgoing TCP traffic."; reference "IETF RFC 5424, Section 6.2.7."; } } } grouping debug-messages-config { description "Configuration data for enabling debug messages."; leaf service { type identityref { base DEBUG_SERVICE; } description "Enumeration of all services which can have debugging enabled. Vendors are to augment this base identity with their platform or OS specific debug options."; } leaf enabled { type boolean; default false; description "Enable and disable debugging."; } } grouping debug-messages-top { description "Configuration data for enabling Syslog debug messages."; container debug-entries { description "Enclosing container for list of debugs to enable."; list debug-service { key "service"; description "List of debugging entries."; leaf service { type leafref { path "../config/service"; } description "Reference to the debug-enable service key."; } container config { description "Configuration data for debug service entries."; uses debug-messages-config; } container state { config false; description "Operational state data for enabled debugs."; uses debug-messages-config; } } } } grouping messages-top { description "Top-level grouping for Syslog messages."; container messages { description "Top-level container for Syslog messages."; container config { description "Configuration data for Syslog messages."; uses messages-config; } container state { config false; description "Operational state data for a Syslog messages."; uses messages-config; uses messages-state; } uses debug-messages-top; } } uses messages-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-messages}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.0.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[79784da5], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.0"; revision "2021-03-02" { description "Fix date-and-time and date's pattern statement, and remove the regexp-posix extension, which makes pattern statements conform to the YANG standard."; reference "0.3.0"; } revision "2020-06-30" { description "Add OpenConfig POSIX pattern extensions."; reference "0.2.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision 2018-04-24 { description "Add date typedef"; reference "0.2.0"; } revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])'; oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '[0-9a-fA-F]*'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T' + '([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + '(\.[0-9]+)?(Z|([+-]([0-1][0-9]|2[0-3]):[0-5][0-9]))$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef date { type string { pattern '[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])'; oc-ext:posix-pattern '^[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$'; } description "A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value."; reference "RFC3339 - Date and Time on the Internet: full-date"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; oc-ext:posix-pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; oc-ext:posix-pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "An IEEE 802 MAC address"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}]=SimpleContainerNode{version=Version[ea2120c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.10.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system"; prefix "oc-sys"; // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-yang-types { prefix oc-yang; } import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa { prefix oc-aaa; } import openconfig-system-logging { prefix oc-log; } import openconfig-system-terminal { prefix oc-sys-term; } import openconfig-procmon { prefix oc-proc; } import openconfig-alarms { prefix oc-alarms; } import openconfig-messages { prefix oc-messages; } import openconfig-license { prefix oc-license; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing system-wide services and functions on network devices. Portions of this code were derived from IETF RFC 7317. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.10.0"; revision "2020-04-13" { description "Remove the existing grpc-service, and add a new list of the gRPC servers in a new module."; reference "0.10.0"; } revision "2020-03-25" { description "Fix typo in description statement for ipv4-address list."; reference "0.9.1"; } revision "2020-01-07" { description "Add import of license management model."; reference "0.9.0"; } revision "2019-03-15" { description "Update boot time to be nanoseconds since epoch."; reference "0.8.0"; } revision "2019-01-29" { description "Add messages module to the system model"; reference "0.7.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.6.1"; } revision "2018-07-17" { description "Add gRPC server data"; reference "0.6.0"; } revision "2018-01-21" { description "Add cpu utilization data"; reference "0.5.0"; } revision "2017-12-15" { description "Add alarms to the system model"; reference "0.4.0"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity NTP_AUTH_TYPE { description "Base identity for encryption schemes supported for NTP authentication keys"; } identity NTP_AUTH_MD5 { base NTP_AUTH_TYPE; description "MD5 encryption method"; } // typedef statements typedef timezone-name-type { type string; description "A time zone name as used by the Time Zone Database, sometimes referred to as the 'Olson Database'. The exact set of valid values is an implementation-specific matter. Client discovery of the exact set of time zone names for a particular server is out of scope."; reference "BCP 175: Procedures for Maintaining the Time Zone Database"; } // grouping statements grouping system-clock-config { description "Configuration data for system-wide clock configuration"; leaf timezone-name { type timezone-name-type; description "The TZ database name to use for the system, such as 'Europe/Stockholm'."; reference "IANA Time Zone Database http://www.iana.org/time-zones"; } } grouping system-clock-state { description "Operational state data for system-wide clock configuration"; } grouping system-clock-top { description "Top-level grouping for system-wide clock configuration"; container clock { description "Top-level container for clock configuration data"; container config { description "Configuration data for system clock"; uses system-clock-config; } container state { config false; description "Operational state data for system clock"; uses system-clock-config; uses system-clock-state; } } } grouping system-global-config { description "system-wide configuration parameters"; leaf hostname { type oc-inet:domain-name; description "The hostname of the device -- should be a single domain label, without the domain."; } leaf domain-name { type oc-inet:domain-name; description "Specifies the domain name used to form fully qualified name for unqualified hostnames."; } leaf login-banner { type string; description "The console login message displayed before the login prompt, i.e., before a user logs into the system."; } leaf motd-banner { type string; description "The console message displayed after a user logs into the system. They system may append additional standard information such as the current system date and time, uptime, last login timestamp, etc."; } } grouping system-global-state { description "Global operational state data for the system"; leaf current-datetime { type oc-yang:date-and-time; description "The current system date and time."; } leaf boot-time { type oc-types:timeticks64; units "nanoseconds"; description "This timestamp indicates the time that the system was last restarted. The value is the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; } } grouping system-dns-config { description "DNS / resolver related configuration data"; leaf-list search { type oc-inet:domain-name; ordered-by user; description "An ordered list of domains to search when resolving a host name."; } } grouping system-dns-state { description "Operational state data for system DNS resolver"; } grouping system-dns-servers-config { description "Configuration data for DNS resolvers"; //RFC 7317 includes a single-value choice statement to for //TCP and UDP transport. This has been removed since it the //transport protocol is not generally available as an options //on target devices. It may be added back if and when needed. leaf address { type oc-inet:ip-address; description "The address of the DNS server, can be either IPv4 or IPv6."; } leaf port { type oc-inet:port-number; default 53; description "The port number of the DNS server."; } //RFC 7317 includes resolver timeout and attempts options. These //have been omitted as they are not available on many targets. If //and when they are required, they may be added back in. } grouping system-dns-static-config { description "Configuration data for static host entries"; leaf hostname { type string; description "Hostname for the static DNS entry"; } leaf-list alias { type string; description "Additional aliases for the hostname"; } leaf-list ipv4-address { type oc-inet:ipv4-address; description "List of IPv4 addresses for the host entry"; } leaf-list ipv6-address { type oc-inet:ipv6-address; description "List of IPv6 addresses for the host entry"; } } grouping system-dns-static-state { description "Operational state data for static host entries"; } grouping system-dns-static-top { description "Top-level grouping for static DNS host entries"; container host-entries { description "Enclosing container for list of static host entries"; list host-entry { key "hostname"; description "List of static host entries"; leaf hostname { type leafref { path "../config/hostname"; } description "Reference to the hostname list key"; } container config { description "Configuration data for static host entries"; uses system-dns-static-config; } container state { config false; description "Operational state data for static host entries"; uses system-dns-static-config; uses system-dns-static-state; } } } } grouping system-dns-servers-state { description "Operational state data for DNS resolvers"; } grouping system-dns-servers-top { description "Top-level grouping for the list of DNS resolvers."; container servers { description "Enclosing container for DNS resolver list"; list server { key "address"; ordered-by user; description "List of the DNS servers that the resolver should query. When the resolver is invoked by a calling application, it sends the query to the first name server in this list. If no response has been received within 'timeout' seconds, the resolver continues with the next server in the list. If no response is received from any server, the resolver continues with the first server again. When the resolver has traversed the list 'attempts' times without receiving any response, it gives up and returns an error to the calling application. Implementations MAY limit the number of entries in this list."; leaf address { type leafref { path "../config/address"; } description "References the configured address of the DNS server"; } container config { description "Configuration data for each DNS resolver"; uses system-dns-servers-config; } container state { config false; description "Operational state data for each DNS resolver"; uses system-dns-servers-config; uses system-dns-servers-state; } } } } grouping system-dns-top { description "Top-level grouping for DNS / resolver config and operational state data"; container dns { description "Enclosing container for DNS resolver data"; container config { description "Configuration data for the DNS resolver"; uses system-dns-config; } container state { config false; description "Operational state data for the DNS resolver"; uses system-dns-config; uses system-dns-state; } uses system-dns-servers-top; uses system-dns-static-top; } } grouping system-ntp-server-config { description "Configuration data for NTP servers"; leaf address { type oc-inet:host; description "The address or hostname of the NTP server."; } leaf port { type oc-inet:port-number; default 123; description "The port number of the NTP server."; } leaf version { type uint8 { range 1..4; } default 4; description "Version number to put in outgoing NTP packets"; } leaf association-type { type enumeration { enum SERVER { description "Use client association mode. This device will not provide synchronization to the configured NTP server."; } enum PEER { description "Use symmetric active association mode. This device may provide synchronization to the configured NTP server."; } enum POOL { description "Use client association mode with one or more of the NTP servers found by DNS resolution of the domain name given by the 'address' leaf. This device will not provide synchronization to the servers."; } } default SERVER; description "The desired association type for this NTP server."; } leaf iburst { type boolean; default false; description "Indicates whether this server should enable burst synchronization or not."; } leaf prefer { type boolean; default false; description "Indicates whether this server should be preferred or not."; } } grouping system-ntp-server-state { description "Operational state data for NTP servers"; leaf stratum { type uint8; description "Indicates the level of the server in the NTP hierarchy. As stratum number increases, the accuracy is degraded. Primary servers are stratum while a maximum value of 16 indicates unsynchronized. The values have the following specific semantics: | 0 | unspecified or invalid | 1 | primary server (e.g., equipped with a GPS receiver) | 2-15 | secondary server (via NTP) | 16 | unsynchronized | 17-255 | reserved"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-delay { type uint32; // TODO: reconsider units for these values -- the spec defines // rootdelay and rootdisperson as 2 16-bit integers for seconds // and fractional seconds, respectively. This gives a // precision of ~15 us (2^-16). Using milliseconds here based // on what implementations typically provide and likely lack // of utility for less than millisecond precision with NTP // time sync. units "milliseconds"; description "The round-trip delay to the server, in milliseconds."; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf root-dispersion { type uint64; units "milliseconds"; description "Dispersion (epsilon) represents the maximum error inherent in the measurement"; reference "RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification"; } leaf offset { type uint64; units "milliseconds"; description "Estimate of the current time offset from the peer. This is the time difference between the local and reference clock."; } leaf poll-interval { type uint32; units "seconds"; description "Polling interval of the peer"; } } grouping system-ntp-server-top { description "Top-level grouping for the list of NTP servers"; container servers { description "Enclosing container for the list of NTP servers"; list server { key "address"; description "List of NTP servers to use for system clock synchronization. If '/system/ntp/enabled' is 'true', then the system will attempt to contact and utilize the specified NTP servers."; leaf address { type leafref { path "../config/address"; } description "References the configured address or hostname of the NTP server."; } container config { description "Configuration data for an NTP server."; uses system-ntp-server-config; } container state { config false; description "Operational state data for an NTP server."; uses system-ntp-server-config; uses system-ntp-server-state; } } } } grouping system-ntp-auth-keys-config { description "Configuration data "; leaf key-id { type uint16; description "Integer identifier used by the client and server to designate a secret key. The client and server must use the same key id."; } leaf key-type { type identityref { base NTP_AUTH_TYPE; } description "Encryption type used for the NTP authentication key"; } leaf key-value { type string; description "NTP authentication key value"; } } grouping system-ntp-auth-keys-state { description "Operational state data for NTP auth key data"; } grouping system-ntp-auth-keys-top { description "Top-level grouping for NTP auth key data"; container ntp-keys { description "Enclosing container for list of NTP authentication keys"; list ntp-key { key "key-id"; description "List of NTP authentication keys"; leaf key-id { type leafref { path "../config/key-id"; } description "Reference to auth key-id list key"; } container config { description "Configuration data for NTP auth keys"; uses system-ntp-auth-keys-config; } container state { config false; description "Operational state data for NTP auth keys"; uses system-ntp-auth-keys-config; uses system-ntp-auth-keys-state; } } } } grouping system-ntp-config { description "Configuration data for system-wide NTP operation."; leaf enabled { type boolean; default false; description "Enables the NTP protocol and indicates that the system should attempt to synchronize the system clock with an NTP server from the servers defined in the 'ntp/server' list."; } leaf ntp-source-address { type oc-inet:ip-address; description "Source address to use on outgoing NTP packets"; } leaf enable-ntp-auth { type boolean; default false; description "Enable or disable NTP authentication -- when enabled, the system will only use packets containing a trusted authentication key to synchronize the time."; } } grouping system-ntp-state { description "Operational state data for system-wide NTP operation."; leaf auth-mismatch { type oc-yang:counter64; description "Count of the number of NTP packets received that were not processed due to authentication mismatch."; } } grouping system-ntp-top { description "Top-level grouping for configuration and state data for NTP"; container ntp { description "Top-level container for NTP configuration and state"; container config { description "Configuration data for NTP client."; uses system-ntp-config; } container state { config false; description "Operational state data for NTP services."; uses system-ntp-config; uses system-ntp-state; } uses system-ntp-auth-keys-top; uses system-ntp-server-top; } } grouping system-memory-config { description "Configuration data for system memory"; } grouping system-memory-state { description "Operational state data for system memory"; leaf physical { type uint64; units bytes; // TODO: consider making units in megabytes description "Reports the total physical memory available on the system."; } leaf reserved { type uint64; units bytes; description "Memory reserved for system use"; } } grouping system-memory-top { description "Top-level grouping for system memory data definitions"; container memory { description "Top-level container for system memory data"; container config { description "Configuration data for system memory"; uses system-memory-config; } container state { config false; description "Operational state data for system memory"; uses system-memory-config; uses system-memory-state; } } } grouping system-cpu-state { description "Operational state data for the system CPU(s)"; leaf index { type union { type enumeration { enum ALL { description "Index value indicating all CPUs in the system"; } } type uint32; } description "The CPU index for each processor core on the system. On a single-core system, the index should be zero. The ALL index signifies an aggregation of the CPU utilization statistics over all cores in the system."; } container total { description "Total CPU utilization."; uses oc-types:avg-min-max-instant-stats-pct; } container user { description "Percentage of CPU time spent running in user space."; uses oc-types:avg-min-max-instant-stats-pct; } container kernel { description "Percentage of CPU time spent running in kernel space."; uses oc-types:avg-min-max-instant-stats-pct; } container nice { description "Percentage of CPU time spent running low-priority (niced) user processes."; uses oc-types:avg-min-max-instant-stats-pct; } container idle { description "Percentage of CPU time spent idle."; uses oc-types:avg-min-max-instant-stats-pct; } container wait { description "Percentage of CPU time spent waiting for I/O."; uses oc-types:avg-min-max-instant-stats-pct; } container hardware-interrupt { description "Percentage of CPU time spent servicing hardware interrupts."; uses oc-types:avg-min-max-instant-stats-pct; } container software-interrupt { description "Percentage of CPU time spent servicing software interrupts"; uses oc-types:avg-min-max-instant-stats-pct; } } grouping system-cpu-top { description "Top-level grouping for system CPU data"; container cpus { config false; description "Enclosing container for the list of CPU cores on the system"; list cpu { key "index"; description "List of CPU cores on the system (including logical CPUs on hyperthreaded systems), keyed by either a numerical index, or the ALL value for an entry representing the aggregation across all CPUs."; leaf index { type leafref { path "../state/index"; } description "Reference to list key"; } container state { description "Operational state data for the system CPU(s)"; uses system-cpu-state; } } } } grouping system-top { description "Top level system data containers"; container system { description "Enclosing container for system-related configuration and operational state data"; container config { description "Global configuration data for the system"; uses system-global-config; } container state { config false; description "Global operational state data for the system"; uses system-global-config; uses system-global-state; } uses system-clock-top; uses system-dns-top; uses system-ntp-top; uses oc-sys-term:system-ssh-server-top; uses oc-sys-term:system-telnet-server-top; uses oc-log:logging-top; uses oc-aaa:aaa-top; uses system-memory-top; uses system-cpu-top; uses oc-proc:procmon-processes-top; uses oc-alarms:alarms-top; uses oc-messages:messages-top; uses oc-license:license-top; } } // data definition statements uses system-top; } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.10.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[380c1057], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-types { yang-version "1"; namespace "http://openconfig.net/yang/openconfig-if-types"; prefix "oc-ift"; // import statements import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module contains a set of interface type definitions that are used across OpenConfig models. These are generally physical or logical interfaces, distinct from hardware ports (which are described by the OpenConfig platform model)."; oc-ext:openconfig-version "0.2.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.2.1"; } revision "2018-01-05" { description "Add tunnel types into the INTERFACE_TYPE identity."; reference "0.2.0"; } revision "2016-11-14" { description "Initial version"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity INTERFACE_TYPE { description "Base identity from which interface types are derived."; } identity IF_ETHERNET { base INTERFACE_TYPE; description "Ethernet interfaces based on IEEE 802.3 standards, as well as FlexEthernet"; reference "IEEE 802.3-2015 - IEEE Standard for Ethernet OIF Flex Ethernet Implementation Agreement 1.0"; } identity IF_AGGREGATE { base INTERFACE_TYPE; description "An aggregated, or bonded, interface forming a Link Aggregation Group (LAG), or bundle, most often based on the IEEE 802.1AX (or 802.3ad) standard."; reference "IEEE 802.1AX-2008"; } identity IF_LOOPBACK { base INTERFACE_TYPE; description "A virtual interface designated as a loopback used for various management and operations tasks."; } identity IF_ROUTED_VLAN { base INTERFACE_TYPE; description "A logical interface used for routing services on a VLAN. Such interfaces are also known as switch virtual interfaces (SVI) or integrated routing and bridging interfaces (IRBs)."; } identity IF_SONET { base INTERFACE_TYPE; description "SONET/SDH interface"; } identity IF_TUNNEL_GRE4 { base INTERFACE_TYPE; description "A GRE tunnel over IPv4 transport."; } identity IF_TUNNEL_GRE6 { base INTERFACE_TYPE; description "A GRE tunnel over IPv6 transport."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.2.1}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}]=SimpleContainerNode{version=Version[33acc0f3], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=iana-if-type, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2023-01-26}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module iana-if-type { namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; prefix ianaift; import ietf-interfaces { prefix if; } organization "IANA"; contact " Internet Assigned Numbers Authority Postal: ICANN 12025 Waterfront Drive, Suite 300 Los Angeles, CA 90094-2536 United States Tel: +1 310 301 5800 "; description "This YANG module defines YANG identities for IANA-registered interface types. This YANG module is maintained by IANA and reflects the 'ifType definitions' registry. The latest revision of this YANG module can be obtained from the IANA web site. Requests for new values should be made to IANA via email (iana@iana.org). Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). The initial version of this YANG module is part of RFC 7224; see the RFC itself for full legal notices."; reference "IANA 'ifType definitions' registry. "; revision 2023-01-26 { description "Fix incorrect quotation for previous 3 revision statements."; } revision 2022-08-24 { description "Updated reference for ifType 303."; } revision 2022-08-17 { description "Changed gpon description to refer to G.984."; } revision 2022-03-07 { description "Coalesced revision history entries for 2018-06-28."; } revision 2021-06-21 { description "Corrected reference for ifType 303."; } revision 2021-05-17 { description "Registered ifType 303."; } revision 2021-04-22 { description "Registered ifType 302."; } revision 2021-04-01 { description "Updated reference for 301."; } revision 2021-02-18 { description "Registered ifType 301."; } revision 2020-08-27 { description "Added missing references."; } revision 2020-07-13 { description "Added identity cpri."; } revision 2020-07-10 { description "Registered ifType 300."; } revision 2020-01-10 { description "Registered ifType 299."; } revision 2019-10-16 { description "Registered ifType 298."; } revision 2019-07-16 { description "Registered ifType 297."; } revision 2019-06-21 { description "Updated reference associated with ifTypes 295-296."; } revision 2019-02-08 { description "Corrected formatting issue."; } revision 2019-01-31 { description "Registered ifTypes 295-296."; } revision 2018-07-03 { description "Corrected revision date."; } revision 2018-06-29 { description "Corrected formatting issue."; } revision 2018-06-28 { description "Registered ifTypes 293 and 294."; } revision 2018-06-22 { description "Registered ifType 292."; } revision 2018-06-21 { description "Registered ifType 291."; } revision 2017-03-30 { description "Registered ifType 290."; } revision 2017-01-19 { description "Registered ifType 289."; } revision 2016-11-23 { description "Registered ifTypes 283-288."; } revision 2016-06-09 { description "Registered ifType 282."; } revision 2016-05-03 { description "Registered ifType 281."; } revision 2015-06-12 { description "Corrected formatting issue."; } revision 2014-09-24 { description "Registered ifType 280."; } revision 2014-09-19 { description "Registered ifType 279."; } revision 2014-07-03 { description "Registered ifTypes 277-278."; } revision 2014-05-19 { description "Updated the contact address."; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7224: IANA Interface Type YANG Module"; } identity iana-interface-type { base if:interface-type; description "This identity is used as a base for all interface types defined in the 'ifType definitions' registry."; } identity other { base iana-interface-type; } identity regular1822 { base iana-interface-type; } identity hdh1822 { base iana-interface-type; } identity ddnX25 { base iana-interface-type; } identity rfc877x25 { base iana-interface-type; reference "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; } identity ethernetCsmacd { base iana-interface-type; description "For all Ethernet-like interfaces, regardless of speed, as per RFC 3635."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88023Csmacd { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity iso88024TokenBus { base iana-interface-type; } identity iso88025TokenRing { base iana-interface-type; } identity iso88026Man { base iana-interface-type; } identity starLan { base iana-interface-type; status deprecated; description "Deprecated via RFC 3635. Use ethernetCsmacd(6) instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity proteon10Mbit { base iana-interface-type; } identity proteon80Mbit { base iana-interface-type; } identity hyperchannel { base iana-interface-type; } identity fddi { base iana-interface-type; reference "RFC 1512 - FDDI Management Information Base"; } identity lapb { base iana-interface-type; reference "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; } identity sdlc { base iana-interface-type; } identity ds1 { base iana-interface-type; description "DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity e1 { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; reference "RFC 4805 - Definitions of Managed Objects for the DS1, J1, E1, DS2, and E2 Interface Types"; } identity basicISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity primaryISDN { base iana-interface-type; description "No longer used. See also RFC 2127."; } identity propPointToPointSerial { base iana-interface-type; description "Proprietary serial."; } identity ppp { base iana-interface-type; } identity softwareLoopback { base iana-interface-type; } identity eon { base iana-interface-type; description "CLNP over IP."; } identity ethernet3Mbit { base iana-interface-type; } identity nsip { base iana-interface-type; description "XNS over IP."; } identity slip { base iana-interface-type; description "Generic SLIP."; } identity ultra { base iana-interface-type; description "Ultra Technologies."; } identity ds3 { base iana-interface-type; description "DS3-MIB."; reference "RFC 3896 - Definitions of Managed Objects for the DS3/E3 Interface Type"; } identity sip { base iana-interface-type; description "SMDS, coffee."; reference "RFC 1694 - Definitions of Managed Objects for SMDS Interfaces using SMIv2"; } identity frameRelay { base iana-interface-type; description "DTE only."; reference "RFC 2115 - Management Information Base for Frame Relay DTEs Using SMIv2"; } identity rs232 { base iana-interface-type; reference "RFC 1659 - Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2"; } identity para { base iana-interface-type; description "Parallel-port."; reference "RFC 1660 - Definitions of Managed Objects for Parallel-printer-like Hardware Devices using SMIv2"; } identity arcnet { base iana-interface-type; description "ARCnet."; } identity arcnetPlus { base iana-interface-type; description "ARCnet Plus."; } identity atm { base iana-interface-type; description "ATM cells."; } identity miox25 { base iana-interface-type; reference "RFC 1461 - SNMP MIB extension for Multiprotocol Interconnect over X.25"; } identity sonet { base iana-interface-type; description "SONET or SDH."; } identity x25ple { base iana-interface-type; reference "RFC 2127 - ISDN Management Information Base using SMIv2"; } identity iso88022llc { base iana-interface-type; } identity localTalk { base iana-interface-type; } identity smdsDxi { base iana-interface-type; } identity frameRelayService { base iana-interface-type; description "FRNETSERV-MIB."; reference "RFC 2954 - Definitions of Managed Objects for Frame Relay Service"; } identity v35 { base iana-interface-type; } identity hssi { base iana-interface-type; } identity hippi { base iana-interface-type; } identity modem { base iana-interface-type; description "Generic modem."; } identity aal5 { base iana-interface-type; description "AAL5 over ATM."; } identity sonetPath { base iana-interface-type; } identity sonetVT { base iana-interface-type; } identity smdsIcip { base iana-interface-type; description "SMDS InterCarrier Interface."; } identity propVirtual { base iana-interface-type; description "Proprietary virtual/internal."; reference "RFC 2863 - The Interfaces Group MIB"; } identity propMultiplexor { base iana-interface-type; description "Proprietary multiplexing."; reference "RFC 2863 - The Interfaces Group MIB"; } identity ieee80212 { base iana-interface-type; description "100BaseVG."; } identity fibreChannel { base iana-interface-type; description "Fibre Channel."; } identity hippiInterface { base iana-interface-type; description "HIPPI interfaces."; } identity frameRelayInterconnect { base iana-interface-type; status obsolete; description "Obsolete; use either frameRelay(32) or frameRelayService(44)."; } identity aflane8023 { base iana-interface-type; description "ATM Emulated LAN for 802.3."; } identity aflane8025 { base iana-interface-type; description "ATM Emulated LAN for 802.5."; } identity cctEmul { base iana-interface-type; description "ATM Emulated circuit."; } identity fastEther { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity isdn { base iana-interface-type; description "ISDN and X.25."; reference "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode"; } identity v11 { base iana-interface-type; description "CCITT V.11/X.21."; } identity v36 { base iana-interface-type; description "CCITT V.36."; } identity g703at64k { base iana-interface-type; description "CCITT G703 at 64Kbps."; } identity g703at2mb { base iana-interface-type; status obsolete; description "Obsolete; see DS1-MIB."; } identity qllc { base iana-interface-type; description "SNA QLLC."; } identity fastEtherFX { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity channel { base iana-interface-type; description "Channel."; } identity ieee80211 { base iana-interface-type; description "Radio spread spectrum."; } identity ibm370parChan { base iana-interface-type; description "IBM System 360/370 OEMI Channel."; } identity escon { base iana-interface-type; description "IBM Enterprise Systems Connection."; } identity dlsw { base iana-interface-type; description "Data Link Switching."; } identity isdns { base iana-interface-type; description "ISDN S/T interface."; } identity isdnu { base iana-interface-type; description "ISDN U interface."; } identity lapd { base iana-interface-type; description "Link Access Protocol D."; } identity ipSwitch { base iana-interface-type; description "IP Switching Objects."; } identity rsrb { base iana-interface-type; description "Remote Source Route Bridging."; } identity atmLogical { base iana-interface-type; description "ATM Logical Port."; reference "RFC 3606 - Definitions of Supplemental Managed Objects for ATM Interface"; } identity ds0 { base iana-interface-type; description "Digital Signal Level 0."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity ds0Bundle { base iana-interface-type; description "Group of ds0s on the same ds1."; reference "RFC 2494 - Definitions of Managed Objects for the DS0 and DS0 Bundle Interface Type"; } identity bsc { base iana-interface-type; description "Bisynchronous Protocol."; } identity async { base iana-interface-type; description "Asynchronous Protocol."; } identity cnr { base iana-interface-type; description "Combat Net Radio."; } identity iso88025Dtr { base iana-interface-type; description "ISO 802.5r DTR."; } identity eplrs { base iana-interface-type; description "Ext Pos Loc Report Sys."; } identity arap { base iana-interface-type; description "Appletalk Remote Access Protocol."; } identity propCnls { base iana-interface-type; description "Proprietary Connectionless Protocol."; } identity hostPad { base iana-interface-type; description "CCITT-ITU X.29 PAD Protocol."; } identity termPad { base iana-interface-type; description "CCITT-ITU X.3 PAD Facility."; } identity frameRelayMPI { base iana-interface-type; description "Multiproto Interconnect over FR."; } identity x213 { base iana-interface-type; description "CCITT-ITU X213."; } identity adsl { base iana-interface-type; description "Asymmetric Digital Subscriber Loop."; } identity radsl { base iana-interface-type; description "Rate-Adapt. Digital Subscriber Loop."; } identity sdsl { base iana-interface-type; description "Symmetric Digital Subscriber Loop."; } identity vdsl { base iana-interface-type; description "Very H-Speed Digital Subscrib. Loop."; } identity iso88025CRFPInt { base iana-interface-type; description "ISO 802.5 CRFP."; } identity myrinet { base iana-interface-type; description "Myricom Myrinet."; } identity voiceEM { base iana-interface-type; description "Voice recEive and transMit."; } identity voiceFXO { base iana-interface-type; description "Voice Foreign Exchange Office."; } identity voiceFXS { base iana-interface-type; description "Voice Foreign Exchange Station."; } identity voiceEncap { base iana-interface-type; description "Voice encapsulation."; } identity voiceOverIp { base iana-interface-type; description "Voice over IP encapsulation."; } identity atmDxi { base iana-interface-type; description "ATM DXI."; } identity atmFuni { base iana-interface-type; description "ATM FUNI."; } identity atmIma { base iana-interface-type; description "ATM IMA."; } identity pppMultilinkBundle { base iana-interface-type; description "PPP Multilink Bundle."; } identity ipOverCdlc { base iana-interface-type; description "IBM ipOverCdlc."; } identity ipOverClaw { base iana-interface-type; description "IBM Common Link Access to Workstn."; } identity stackToStack { base iana-interface-type; description "IBM stackToStack."; } identity virtualIpAddress { base iana-interface-type; description "IBM VIPA."; } identity mpc { base iana-interface-type; description "IBM multi-protocol channel support."; } identity ipOverAtm { base iana-interface-type; description "IBM ipOverAtm."; reference "RFC 2320 - Definitions of Managed Objects for Classical IP and ARP Over ATM Using SMIv2 (IPOA-MIB)"; } identity iso88025Fiber { base iana-interface-type; description "ISO 802.5j Fiber Token Ring."; } identity tdlc { base iana-interface-type; description "IBM twinaxial data link control."; } identity gigabitEthernet { base iana-interface-type; status deprecated; description "Obsoleted via RFC 3635. ethernetCsmacd(6) should be used instead."; reference "RFC 3635 - Definitions of Managed Objects for the Ethernet-like Interface Types"; } identity hdlc { base iana-interface-type; description "HDLC."; } identity lapf { base iana-interface-type; description "LAP F."; } identity v37 { base iana-interface-type; description "V.37."; } identity x25mlp { base iana-interface-type; description "Multi-Link Protocol."; } identity x25huntGroup { base iana-interface-type; description "X25 Hunt Group."; } identity transpHdlc { base iana-interface-type; description "Transp HDLC."; } identity interleave { base iana-interface-type; description "Interleave channel."; } identity fast { base iana-interface-type; description "Fast channel."; } identity ip { base iana-interface-type; description "IP (for APPN HPR in IP networks)."; } identity docsCableMaclayer { base iana-interface-type; description "CATV Mac Layer."; } identity docsCableDownstream { base iana-interface-type; description "CATV Downstream interface."; } identity docsCableUpstream { base iana-interface-type; description "CATV Upstream interface."; } identity a12MppSwitch { base iana-interface-type; description "Avalon Parallel Processor."; } identity tunnel { base iana-interface-type; description "Encapsulation interface."; } identity coffee { base iana-interface-type; description "Coffee pot."; reference "RFC 2325 - Coffee MIB"; } identity ces { base iana-interface-type; description "Circuit Emulation Service."; } identity atmSubInterface { base iana-interface-type; description "ATM Sub Interface."; } identity l2vlan { base iana-interface-type; description "Layer 2 Virtual LAN using 802.1Q."; } identity l3ipvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IP."; } identity l3ipxvlan { base iana-interface-type; description "Layer 3 Virtual LAN using IPX."; } identity digitalPowerline { base iana-interface-type; description "IP over Power Lines."; } identity mediaMailOverIp { base iana-interface-type; description "Multimedia Mail over IP."; } identity dtm { base iana-interface-type; description "Dynamic synchronous Transfer Mode."; } identity dcn { base iana-interface-type; description "Data Communications Network."; } identity ipForward { base iana-interface-type; description "IP Forwarding Interface."; } identity msdsl { base iana-interface-type; description "Multi-rate Symmetric DSL."; } identity ieee1394 { base iana-interface-type; description "IEEE1394 High Performance Serial Bus."; } identity if-gsn { base iana-interface-type; description "HIPPI-6400."; } identity dvbRccMacLayer { base iana-interface-type; description "DVB-RCC MAC Layer."; } identity dvbRccDownstream { base iana-interface-type; description "DVB-RCC Downstream Channel."; } identity dvbRccUpstream { base iana-interface-type; description "DVB-RCC Upstream Channel."; } identity atmVirtual { base iana-interface-type; description "ATM Virtual Interface."; } identity mplsTunnel { base iana-interface-type; description "MPLS Tunnel Virtual Interface."; } identity srp { base iana-interface-type; description "Spatial Reuse Protocol."; } identity voiceOverAtm { base iana-interface-type; description "Voice over ATM."; } identity voiceOverFrameRelay { base iana-interface-type; description "Voice Over Frame Relay."; } identity idsl { base iana-interface-type; description "Digital Subscriber Loop over ISDN."; } identity compositeLink { base iana-interface-type; description "Avici Composite Link Interface."; } identity ss7SigLink { base iana-interface-type; description "SS7 Signaling Link."; } identity propWirelessP2P { base iana-interface-type; description "Prop. P2P wireless interface."; } identity frForward { base iana-interface-type; description "Frame Forward Interface."; } identity rfc1483 { base iana-interface-type; description "Multiprotocol over ATM AAL5."; reference "RFC 1483 - Multiprotocol Encapsulation over ATM Adaptation Layer 5"; } identity usb { base iana-interface-type; description "USB Interface."; } identity ieee8023adLag { base iana-interface-type; description "IEEE 802.3ad Link Aggregate."; } identity bgppolicyaccounting { base iana-interface-type; description "BGP Policy Accounting."; } identity frf16MfrBundle { base iana-interface-type; description "FRF.16 Multilink Frame Relay."; } identity h323Gatekeeper { base iana-interface-type; description "H323 Gatekeeper."; } identity h323Proxy { base iana-interface-type; description "H323 Voice and Video Proxy."; } identity mpls { base iana-interface-type; description "MPLS."; } identity mfSigLink { base iana-interface-type; description "Multi-frequency signaling link."; } identity hdsl2 { base iana-interface-type; description "High Bit-Rate DSL - 2nd generation."; } identity shdsl { base iana-interface-type; description "Multirate HDSL2."; } identity ds1FDL { base iana-interface-type; description "Facility Data Link (4Kbps) on a DS1."; } identity pos { base iana-interface-type; description "Packet over SONET/SDH Interface."; } identity dvbAsiIn { base iana-interface-type; description "DVB-ASI Input."; } identity dvbAsiOut { base iana-interface-type; description "DVB-ASI Output."; } identity plc { base iana-interface-type; description "Power Line Communications."; } identity nfas { base iana-interface-type; description "Non-Facility Associated Signaling."; } identity tr008 { base iana-interface-type; description "TR008."; } identity gr303RDT { base iana-interface-type; description "Remote Digital Terminal."; } identity gr303IDT { base iana-interface-type; description "Integrated Digital Terminal."; } identity isup { base iana-interface-type; description "ISUP."; } identity propDocsWirelessMaclayer { base iana-interface-type; description "Cisco proprietary Maclayer."; } identity propDocsWirelessDownstream { base iana-interface-type; description "Cisco proprietary Downstream."; } identity propDocsWirelessUpstream { base iana-interface-type; description "Cisco proprietary Upstream."; } identity hiperlan2 { base iana-interface-type; description "HIPERLAN Type 2 Radio Interface."; } identity propBWAp2Mp { base iana-interface-type; description "PropBroadbandWirelessAccesspt2Multipt (use of this value for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f is deprecated, and ieee80216WMAN(237) should be used instead)."; } identity sonetOverheadChannel { base iana-interface-type; description "SONET Overhead Channel."; } identity digitalWrapperOverheadChannel { base iana-interface-type; description "Digital Wrapper."; } identity aal2 { base iana-interface-type; description "ATM adaptation layer 2."; } identity radioMAC { base iana-interface-type; description "MAC layer over radio links."; } identity atmRadio { base iana-interface-type; description "ATM over radio links."; } identity imt { base iana-interface-type; description "Inter-Machine Trunks."; } identity mvl { base iana-interface-type; description "Multiple Virtual Lines DSL."; } identity reachDSL { base iana-interface-type; description "Long Reach DSL."; } identity frDlciEndPt { base iana-interface-type; description "Frame Relay DLCI End Point."; } identity atmVciEndPt { base iana-interface-type; description "ATM VCI End Point."; } identity opticalChannel { base iana-interface-type; description "Optical Channel."; } identity opticalTransport { base iana-interface-type; description "Optical Transport."; } identity propAtm { base iana-interface-type; description "Proprietary ATM."; } identity voiceOverCable { base iana-interface-type; description "Voice Over Cable Interface."; } identity infiniband { base iana-interface-type; description "Infiniband."; } identity teLink { base iana-interface-type; description "TE Link."; } identity q2931 { base iana-interface-type; description "Q.2931."; } identity virtualTg { base iana-interface-type; description "Virtual Trunk Group."; } identity sipTg { base iana-interface-type; description "SIP Trunk Group."; } identity sipSig { base iana-interface-type; description "SIP Signaling."; } identity docsCableUpstreamChannel { base iana-interface-type; description "CATV Upstream Channel."; } identity econet { base iana-interface-type; description "Acorn Econet."; } identity pon155 { base iana-interface-type; description "FSAN 155Mb Symetrical PON interface."; } identity pon622 { base iana-interface-type; description "FSAN 622Mb Symetrical PON interface."; } identity bridge { base iana-interface-type; description "Transparent bridge interface."; } identity linegroup { base iana-interface-type; description "Interface common to multiple lines."; } identity voiceEMFGD { base iana-interface-type; description "Voice E&M Feature Group D."; } identity voiceFGDEANA { base iana-interface-type; description "Voice FGD Exchange Access North American."; } identity voiceDID { base iana-interface-type; description "Voice Direct Inward Dialing."; } identity mpegTransport { base iana-interface-type; description "MPEG transport interface."; } identity sixToFour { base iana-interface-type; status deprecated; description "6to4 interface (DEPRECATED)."; reference "RFC 4087 - IP Tunnel MIB"; } identity gtp { base iana-interface-type; description "GTP (GPRS Tunneling Protocol)."; } identity pdnEtherLoop1 { base iana-interface-type; description "Paradyne EtherLoop 1."; } identity pdnEtherLoop2 { base iana-interface-type; description "Paradyne EtherLoop 2."; } identity opticalChannelGroup { base iana-interface-type; description "Optical Channel Group."; } identity homepna { base iana-interface-type; description "HomePNA ITU-T G.989."; } identity gfp { base iana-interface-type; description "Generic Framing Procedure (GFP)."; } identity ciscoISLvlan { base iana-interface-type; description "Layer 2 Virtual LAN using Cisco ISL."; } identity actelisMetaLOOP { base iana-interface-type; description "Acteleis proprietary MetaLOOP High Speed Link."; } identity fcipLink { base iana-interface-type; description "FCIP Link."; } identity rpr { base iana-interface-type; description "Resilient Packet Ring Interface Type."; } identity qam { base iana-interface-type; description "RF Qam Interface."; } identity lmp { base iana-interface-type; description "Link Management Protocol."; reference "RFC 4327 - Link Management Protocol (LMP) Management Information Base (MIB)"; } identity cblVectaStar { base iana-interface-type; description "Cambridge Broadband Networks Limited VectaStar."; } identity docsCableMCmtsDownstream { base iana-interface-type; description "CATV Modular CMTS Downstream Interface."; } identity adsl2 { base iana-interface-type; status deprecated; description "Asymmetric Digital Subscriber Loop Version 2 (DEPRECATED/OBSOLETED - please use adsl2plus(238) instead)."; reference "RFC 4706 - Definitions of Managed Objects for Asymmetric Digital Subscriber Line 2 (ADSL2)"; } identity macSecControlledIF { base iana-interface-type; description "MACSecControlled."; } identity macSecUncontrolledIF { base iana-interface-type; description "MACSecUncontrolled."; } identity aviciOpticalEther { base iana-interface-type; description "Avici Optical Ethernet Aggregate."; } identity atmbond { base iana-interface-type; description "atmbond."; } identity voiceFGDOS { base iana-interface-type; description "Voice FGD Operator Services."; } identity mocaVersion1 { base iana-interface-type; description "MultiMedia over Coax Alliance (MoCA) Interface as documented in information provided privately to IANA."; } identity ieee80216WMAN { base iana-interface-type; description "IEEE 802.16 WMAN interface."; } identity adsl2plus { base iana-interface-type; description "Asymmetric Digital Subscriber Loop Version 2 - Version 2 Plus and all variants."; } identity dvbRcsMacLayer { base iana-interface-type; description "DVB-RCS MAC Layer."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbTdm { base iana-interface-type; description "DVB Satellite TDM."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity dvbRcsTdma { base iana-interface-type; description "DVB-RCS TDMA."; reference "RFC 5728 - The SatLabs Group DVB-RCS MIB"; } identity x86Laps { base iana-interface-type; description "LAPS based on ITU-T X.86/Y.1323."; } identity wwanPP { base iana-interface-type; description "3GPP WWAN."; } identity wwanPP2 { base iana-interface-type; description "3GPP2 WWAN."; } identity voiceEBS { base iana-interface-type; description "Voice P-phone EBS physical interface."; } identity ifPwType { base iana-interface-type; description "Pseudowire interface type."; reference "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; } identity ilan { base iana-interface-type; description "Internal LAN on a bridge per IEEE 802.1ap."; } identity pip { base iana-interface-type; description "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; } identity aluELP { base iana-interface-type; description "Alcatel-Lucent Ethernet Link Protection."; } identity gpon { base iana-interface-type; description "Gigabit-capable passive optical networks (G-PON) as per ITU-T G.984."; } identity vdsl2 { base iana-interface-type; description "Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)."; reference "RFC 5650 - Definitions of Managed Objects for Very High Speed Digital Subscriber Line 2 (VDSL2)"; } identity capwapDot11Profile { base iana-interface-type; description "WLAN Profile Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapDot11Bss { base iana-interface-type; description "WLAN BSS Interface."; reference "RFC 5834 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Binding MIB for IEEE 802.11"; } identity capwapWtpVirtualRadio { base iana-interface-type; description "WTP Virtual Radio Interface."; reference "RFC 5833 - Control and Provisioning of Wireless Access Points (CAPWAP) Protocol Base MIB"; } identity bits { base iana-interface-type; description "bitsport."; } identity docsCableUpstreamRfPort { base iana-interface-type; description "DOCSIS CATV Upstream RF Port."; } identity cableDownstreamRfPort { base iana-interface-type; description "CATV downstream RF Port."; } identity vmwareVirtualNic { base iana-interface-type; description "VMware Virtual Network Interface."; } identity ieee802154 { base iana-interface-type; description "IEEE 802.15.4 WPAN interface."; reference "IEEE 802.15.4-2006"; } identity otnOdu { base iana-interface-type; description "OTN Optical Data Unit."; } identity otnOtu { base iana-interface-type; description "OTN Optical channel Transport Unit."; } identity ifVfiType { base iana-interface-type; description "VPLS Forwarding Instance Interface Type."; } identity g9981 { base iana-interface-type; description "G.998.1 bonded interface."; } identity g9982 { base iana-interface-type; description "G.998.2 bonded interface."; } identity g9983 { base iana-interface-type; description "G.998.3 bonded interface."; } identity aluEpon { base iana-interface-type; description "Ethernet Passive Optical Networks (E-PON)."; } identity aluEponOnu { base iana-interface-type; description "EPON Optical Network Unit."; } identity aluEponPhysicalUni { base iana-interface-type; description "EPON physical User to Network interface."; } identity aluEponLogicalLink { base iana-interface-type; description "The emulation of a point-to-point link over the EPON layer."; } identity aluGponOnu { base iana-interface-type; description "GPON Optical Network Unit."; reference "ITU-T G.984.2"; } identity aluGponPhysicalUni { base iana-interface-type; description "GPON physical User to Network interface."; reference "ITU-T G.984.2"; } identity vmwareNicTeam { base iana-interface-type; description "VMware NIC Team."; } identity docsOfdmDownstream { base iana-interface-type; description "CATV Downstream OFDM interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity docsOfdmaUpstream { base iana-interface-type; description "CATV Upstream OFDMA interface."; reference "Cable Modem Operations Support System Interface Specification"; } identity gfast { base iana-interface-type; description "G.fast port."; reference "ITU-T G.9701"; } identity sdci { base iana-interface-type; description "SDCI (IO-Link)."; reference "IEC 61131-9 Edition 1.0 2013-09"; } identity xboxWireless { base iana-interface-type; description "Xbox wireless."; } identity fastdsl { base iana-interface-type; description "FastDSL."; reference "BBF TR-355"; } identity docsCableScte55d1FwdOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Forward Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d1RetOob { base iana-interface-type; description "Cable SCTE 55-1 OOB Return Channel."; reference "ANSI/SCTE 55-1 2009"; } identity docsCableScte55d2DsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Downstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableScte55d2UsOob { base iana-interface-type; description "Cable SCTE 55-2 OOB Upstream Channel."; reference "ANSI/SCTE 55-2 2008"; } identity docsCableNdf { base iana-interface-type; description "Cable Narrowband Digital Forward."; } identity docsCableNdr { base iana-interface-type; description "Cable Narrowband Digital Return."; } identity ptm { base iana-interface-type; description "Packet Transfer Mode."; reference "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; } identity ghn { base iana-interface-type; description "G.hn port."; reference "IEEE G.9961"; } identity otnOtsi { base iana-interface-type; description "Optical Tributary Signal."; reference "ITU-T G.959.1"; } identity otnOtuc { base iana-interface-type; description "OTN OTUCn."; reference "ITU-T G.709/Y.1331"; } identity otnOduc { base iana-interface-type; description "OTN ODUC."; reference "ITU-T G.709"; } identity otnOtsig { base iana-interface-type; description "OTN OTUC Signal."; reference "ITU-T G.709"; } identity microwaveCarrierTermination { base iana-interface-type; description "air interface of a single microwave carrier."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity microwaveRadioLinkTerminal { base iana-interface-type; description "radio link interface for one or several aggregated microwave carriers."; reference "RFC 8561 - A YANG Data Model for Microwave Radio Link"; } identity ieee8021axDrni { base iana-interface-type; description "IEEE 802.1AX Distributed Resilient Network Interface."; reference "IEEE 802.1AX-Rev-d2-0"; } identity ax25 { base iana-interface-type; description "AX.25 network interfaces."; reference "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; } identity ieee19061nanocom { base iana-interface-type; description "Nanoscale and Molecular Communication."; reference "IEEE 1906.1-2015"; } identity cpri { base iana-interface-type; description "Common Public Radio Interface."; reference "CPRI v7.0"; } identity omni { base iana-interface-type; description "Overlay Multilink Network Interface (OMNI)."; reference "draft-templin-6man-omni-00"; } identity roe { base iana-interface-type; description "Radio over Ethernet Interface."; reference "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; } identity p2pOverLan { base iana-interface-type; description "Point to Point over LAN interface."; reference "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=iana-if-type}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2023-01-26}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[8a3ed00], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-if-aggregate { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/aggregate"; prefix "oc-lag"; // import some basic types import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import iana-if-type { prefix ianaift; } import openconfig-if-types { prefix oc-ift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "Model for managing aggregated (aka bundle, LAG) interfaces."; oc-ext:openconfig-version "2.4.3"; revision "2020-05-01" { description "Update when statements to reference config nodes from config true elements."; reference "2.4.3"; } revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "2.4.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "2.3.2"; } revision "2018-03-23" { description "Fix/cleanup when statements in aggregates model."; reference "2.3.1"; } revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-22" { description "Add IPv4 proxy ARP configuration."; reference "2.2.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements // typedef statements typedef aggregation-type { type enumeration { enum LACP { description "LAG managed by LACP"; } enum STATIC { description "Statically configured bundle / LAG"; } } description "Type to define the lag-type, i.e., how the LAG is defined and managed"; } // grouping statements grouping aggregation-logical-config { description "Configuration data for aggregate interfaces"; leaf lag-type { type aggregation-type; description "Sets the type of LAG, i.e., how it is configured / maintained"; } leaf min-links { type uint16; description "Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available"; } } grouping aggregation-logical-state { description "Operational state data for aggregate interfaces"; leaf lag-speed { type uint32; units Mbps; description "Reports effective speed of the aggregate interface, based on speed of active member interfaces"; } leaf-list member { when "../../config/lag-type = 'STATIC'" { description "The simple list of member interfaces is active when the aggregate is statically configured"; } type oc-if:base-interface-ref; description "List of current member interfaces for the aggregate, expressed as references to existing interfaces"; } } grouping aggregation-logical-top { description "Top-level data definitions for LAGs"; container aggregation { description "Options for logical interfaces representing aggregates"; container config { description "Configuration variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; } container state { config false; description "Operational state variables for logical aggregate / LAG interfaces"; uses aggregation-logical-config; uses aggregation-logical-state; } } } grouping ethernet-if-aggregation-config { description "Adds configuration items for Ethernet interfaces belonging to a logical aggregate / LAG"; leaf aggregate-id { type leafref { path "/oc-if:interfaces/oc-if:interface/oc-if:name"; } description "Specify the logical aggregate interface to which this interface belongs"; } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface" { description "Adds LAG configuration to the interface module"; uses aggregation-logical-top { when "oc-if:config/oc-if:type = 'ianaift:ieee8023adLag' or " + "oc-if:config/oc-if:type = 'oc-ift:IF_AGGREGATE'" { description "active when the interface is set to type LAG"; } } } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:config" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" + "oc-eth:state" { description "Adds LAG settings to individual Ethernet interfaces"; uses ethernet-if-aggregation-config; } // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-if-aggregate}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2.4.3}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[618c5215], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module ietf-yang-types { namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang"; organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: David Kessens WG Chair: Juergen Schoenwaelder Editor: Juergen Schoenwaelder "; description "This module contains a collection of generally useful derived YANG data types. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6991; see the RFC itself for full legal notices."; revision 2013-07-15 { description "This revision adds the following new data types: - yang-identifier - hex-string - uuid - dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; } /*** collection of counter and gauge types ***/ typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32. In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; } typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity. The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64. In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } typedef gauge32 { type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases). In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; } /*** collection of identifier-related types ***/ typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree. Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace. The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifiers. The pattern captures these restrictions. Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers. This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type; the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; } typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers. In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef yang-identifier { type string { length "1..max"; pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; } description "A YANG identifier string as defined by the 'identifier' rule in Section 12 of RFC 6020. An identifier must start with an alphabetic character or an underscore followed by an arbitrary sequence of alphabetic or numeric characters, underscores, hyphens, or dots. A YANG identifier MUST NOT start with any possible combination of the lowercase or uppercase character sequence 'xml'."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } /*** collection of types related to date and time***/ typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions: (a) The date-and-time type does not allow negative years. (b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime. (c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'. This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac. The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; } typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs. In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; } typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } /*** collection of generic address types ***/ typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; } typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; } /*** collection of XML-specific types ***/ typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression. When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated."; reference "XPATH: XML Path Language (XPath) Version 1.0"; } /*** collection of string types ***/ typedef hex-string { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "A hexadecimal string with octets represented as hex digits separated by colons. The canonical representation uses lowercase characters."; } typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 "; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef dotted-quad { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; } description "An unsigned 32-bit number expressed in the dotted-quad notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-yang-types}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2013-07-15}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}]=SimpleContainerNode{version=Version[7f458122], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-vlan, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=3.2.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-vlan { yang-version "1"; // namespace namespace "http://openconfig.net/yang/vlan"; prefix "oc-vlan"; // import some basic types import openconfig-vlan-types { prefix oc-vlan-types; } import openconfig-interfaces { prefix oc-if; } import openconfig-if-ethernet { prefix oc-eth; } import openconfig-if-aggregate { prefix oc-lag; } import iana-if-type { prefix ianaift; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; oc-ext:openconfig-version "3.2.0"; revision "2019-04-16" { description "Update import prefix for iana-if-type module"; reference "3.2.0"; } revision "2019-01-31" { description "Revise QinQ matching and add input/output VLAN stack operations."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.2"; } revision "2018-06-05" { description "Fix bugs in when statements."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping vlan-config { description "VLAN configuration container."; leaf vlan-id { type oc-vlan-types:vlan-id; description "Interface VLAN id."; } leaf name { type string; description "Interface VLAN name."; } leaf status { type enumeration { enum ACTIVE { description "VLAN is active"; } enum SUSPENDED { description "VLAN is inactive / suspended"; } } default ACTIVE; description "Admin state of the VLAN"; } } grouping vlan-state { description "State variables for VLANs"; // placeholder } grouping vlan-tpid-config { description "TPID configuration for dot1q-enabled interfaces"; leaf tpid { type identityref { base oc-vlan-types:TPID_TYPES; } default oc-vlan-types:TPID_0X8100; description "Optionally set the tag protocol identifier field (TPID) that is accepted on the VLAN"; } } grouping vlan-tpid-state { description "TPID opstate for dot1q-enabled interfaces"; // placeholder } grouping vlan-members-state { description "List of interfaces / subinterfaces belonging to the VLAN."; container members { description "Enclosing container for list of member interfaces"; list member { config false; description "List of references to interfaces / subinterfaces associated with the VLAN."; uses oc-if:base-interface-ref-state; } } } grouping vlan-switched-config { description "VLAN related configuration that is part of the physical Ethernet interface."; leaf interface-mode { type oc-vlan-types:vlan-mode-type; description "Set the interface to access or trunk mode for VLANs"; } leaf native-vlan { when "../interface-mode = 'TRUNK'" { description "Native VLAN is valid for trunk mode interfaces"; } type oc-vlan-types:vlan-id; description "Set the native VLAN id for untagged frames arriving on a trunk interface. Tagged frames sent on an interface configured with a native VLAN should have their tags stripped prior to transmission. This configuration is only valid on a trunk interface."; } leaf access-vlan { when "../interface-mode = 'ACCESS'" { description "Access VLAN assigned to the interfaces"; } type oc-vlan-types:vlan-id; description "Assign the access vlan to the access port."; } leaf-list trunk-vlans { when "../interface-mode = 'TRUNK'" { description "Allowed VLANs may be specified for trunk mode interfaces."; } type union { type oc-vlan-types:vlan-id; type oc-vlan-types:vlan-range; } description "Specify VLANs, or ranges thereof, that the interface may carry when in trunk mode. If not specified, all VLANs are allowed on the interface. Ranges are specified in the form x..y, where x WG List: Editor: Martin Bjorklund "; description "This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8343; see the RFC itself for full legal notices."; revision 2018-02-20 { description "Updated to support NMDA."; reference "RFC 8343: A YANG Data Model for Interface Management"; } revision 2014-05-08 { description "Initial revision."; reference "RFC 7223: A YANG Data Model for Interface Management"; } /* * Typedefs */ typedef interface-ref { type leafref { path "/if:interfaces/if:interface/if:name"; } description "This type is used by data models that need to reference interfaces."; } /* * Identities */ identity interface-type { description "Base identity from which specific interface types are derived."; } /* * Features */ feature arbitrary-names { description "This feature indicates that the device allows user-controlled interfaces to be named arbitrarily."; } feature pre-provisioning { description "This feature indicates that the device supports pre-provisioning of interface configuration, i.e., it is possible to configure an interface whose physical interface hardware is not present on the device."; } feature if-mib { description "This feature indicates that the device implements the IF-MIB."; reference "RFC 2863: The Interfaces Group MIB"; } /* * Data nodes */ container interfaces { description "Interface parameters."; list interface { key "name"; description "The list of interfaces on the device. The status of an interface is available in this list in the operational state. If the configuration of a system-controlled interface cannot be used by the system (e.g., the interface hardware present does not match the interface type), then the configuration is not applied to the system-controlled interface shown in the operational state. If the configuration of a user-controlled interface cannot be used by the system, the configured interface is not instantiated in the operational state. System-controlled interfaces created by the system are always present in this list in the operational state, whether or not they are configured."; leaf name { type string; description "The name of the interface. A device MAY restrict the allowed values for this leaf, possibly depending on the type of the interface. For system-controlled interfaces, this leaf is the device-specific name of the interface. If a client tries to create configuration for a system-controlled interface that is not present in the operational state, the server MAY reject the request if the implementation does not support pre-provisioning of interfaces or if the name refers to an interface that can never exist in the system. A Network Configuration Protocol (NETCONF) server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case. If the device supports pre-provisioning of interface configuration, the 'pre-provisioning' feature is advertised. If the device allows arbitrarily named user-controlled interfaces, the 'arbitrary-names' feature is advertised. When a configured user-controlled interface is created by the system, it is instantiated with the same name in the operational state. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf description { type string; description "A textual description of the interface. A server implementation MAY map this leaf to the ifAlias MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifAlias. The definition of such a mechanism is outside the scope of this document. Since ifAlias is defined to be stored in non-volatile storage, the MIB implementation MUST map ifAlias to the value of 'description' in the persistently stored configuration."; reference "RFC 2863: The Interfaces Group MIB - ifAlias"; } leaf type { type identityref { base interface-type; } mandatory true; description "The type of the interface. When an interface entry is created, a server MAY initialize the type leaf with a valid value, e.g., if it is possible to derive the type from the name of the interface. If a client tries to set the type of an interface to a value that can never be used by the system, e.g., if the type is not supported or if the type does not match the name of the interface, the server MUST reject the request. A NETCONF server MUST reply with an rpc-error with the error-tag 'invalid-value' in this case."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf enabled { type boolean; default "true"; description "This leaf contains the configured, desired state of the interface. Systems that implement the IF-MIB use the value of this leaf in the intended configuration to set IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry has been initialized, as described in RFC 2863. Changes in this leaf in the intended configuration are reflected in ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf link-up-down-trap-enable { if-feature if-mib; type enumeration { enum enabled { value 1; description "The device will generate linkUp/linkDown SNMP notifications for this interface."; } enum disabled { value 2; description "The device will not generate linkUp/linkDown SNMP notifications for this interface."; } } description "Controls whether linkUp/linkDown SNMP notifications should be generated for this interface. If this node is not configured, the value 'enabled' is operationally used by the server for interfaces that do not operate on top of any other interface (i.e., there are no 'lower-layer-if' entries), and 'disabled' otherwise."; reference "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } config false; mandatory true; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } config false; mandatory true; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; config false; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } config false; mandatory true; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; config false; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-ref; config false; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-ref; config false; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; config false; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { config false; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } /* * Legacy typedefs */ typedef interface-state-ref { type leafref { path "/if:interfaces-state/if:interface/if:name"; } status deprecated; description "This type is used by data models that need to reference the operationally present interfaces."; } /* * Legacy operational state data nodes */ container interfaces-state { config false; status deprecated; description "Data nodes for the operational state of interfaces."; list interface { key "name"; status deprecated; description "The list of interfaces on the device. System-controlled interfaces created by the system are always present in this list, whether or not they are configured."; leaf name { type string; status deprecated; description "The name of the interface. A server implementation MAY map this leaf to the ifName MIB object. Such an implementation needs to use some mechanism to handle the differences in size and characters allowed between this leaf and ifName. The definition of such a mechanism is outside the scope of this document."; reference "RFC 2863: The Interfaces Group MIB - ifName"; } leaf type { type identityref { base interface-type; } mandatory true; status deprecated; description "The type of the interface."; reference "RFC 2863: The Interfaces Group MIB - ifType"; } leaf admin-status { if-feature if-mib; type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "Not ready to pass packets and not in some test mode."; } enum testing { value 3; description "In some test mode."; } } mandatory true; status deprecated; description "The desired state of the interface. This leaf has the same read semantics as ifAdminStatus."; reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; } leaf oper-status { type enumeration { enum up { value 1; description "Ready to pass packets."; } enum down { value 2; description "The interface does not pass any packets."; } enum testing { value 3; description "In some test mode. No operational packets can be passed."; } enum unknown { value 4; description "Status cannot be determined for some reason."; } enum dormant { value 5; description "Waiting for some external event."; } enum not-present { value 6; description "Some component (typically hardware) is missing."; } enum lower-layer-down { value 7; description "Down due to state of lower-layer interface(s)."; } } mandatory true; status deprecated; description "The current operational state of the interface. This leaf has the same semantics as ifOperStatus."; reference "RFC 2863: The Interfaces Group MIB - ifOperStatus"; } leaf last-change { type yang:date-and-time; status deprecated; description "The time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifLastChange"; } leaf if-index { if-feature if-mib; type int32 { range "1..2147483647"; } mandatory true; status deprecated; description "The ifIndex value for the ifEntry represented by this interface."; reference "RFC 2863: The Interfaces Group MIB - ifIndex"; } leaf phys-address { type yang:phys-address; status deprecated; description "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a Media Access Control (MAC) address. The interface's media-specific modules must define the bit and byte ordering and the format of the value of this object. For interfaces that do not have such an address (e.g., a serial line), this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; } leaf-list higher-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered on top of this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf-list lower-layer-if { type interface-state-ref; status deprecated; description "A list of references to interfaces layered underneath this interface."; reference "RFC 2863: The Interfaces Group MIB - ifStackTable"; } leaf speed { type yang:gauge64; units "bits/second"; status deprecated; description "An estimate of the interface's current bandwidth in bits per second. For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this node should contain the nominal bandwidth. For interfaces that have no concept of bandwidth, this node is not present."; reference "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed"; } container statistics { status deprecated; description "A collection of interface-related statistics objects."; leaf discontinuity-time { type yang:date-and-time; mandatory true; status deprecated; description "The time on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity. If no such discontinuities have occurred since the last re-initialization of the local management subsystem, then this node contains the time the local management subsystem re-initialized itself."; } leaf in-octets { type yang:counter64; status deprecated; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; } leaf in-unicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; } leaf in-broadcast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts"; } leaf in-multicast-pkts { type yang:counter64; status deprecated; description "The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInMulticastPkts"; } leaf in-discards { type yang:counter32; status deprecated; description "The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInDiscards"; } leaf in-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInErrors"; } leaf in-unknown-protos { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of packets received via the interface that were discarded because of an unknown or unsupported protocol. For character-oriented or fixed-length interfaces that support protocol multiplexing, the number of transmission units received via the interface that were discarded because of an unknown or unsupported protocol. For any interface that does not support protocol multiplexing, this counter is not present. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; } leaf out-octets { type yang:counter64; status deprecated; description "The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; } leaf out-unicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; } leaf out-broadcast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutBroadcastPkts"; } leaf out-multicast-pkts { type yang:counter64; status deprecated; description "The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCOutMulticastPkts"; } leaf out-discards { type yang:counter32; status deprecated; description "The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; } leaf out-errors { type yang:counter32; status deprecated; description "For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifOutErrors"; } } } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=ietf-interfaces}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=2018-02-20}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[3c154940], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-alarms { yang-version "1"; // namespace namespace "http://openconfig.net/yang/alarms"; prefix "oc-alarms"; // import some basic types import openconfig-alarm-types { prefix oc-alarm-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-types { prefix oc-types; } import openconfig-platform { prefix oc-platform; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines operational state data related to alarms that the device is reporting. This model reuses some data items defined in the draft IETF YANG Alarm Module: https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02 Portions of this code were derived from the draft IETF YANG Alarm Module. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.3.2"; revision "2019-07-09" { description "Clarify relative base for leaves using timeticks64."; reference "0.3.2"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2018-01-16" { description "Moved alarm identities into separate types module"; reference "0.3.0"; } revision "2018-01-10" { description "Make alarms list read only"; reference "0.2.0"; } revision "2017-08-24" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // grouping statements grouping alarm-state { description "Operational state data for device alarms"; leaf id { type string; description "Unique ID for the alarm -- this will not be a configurable parameter on many implementations"; } leaf resource { type string; description "The item that is under alarm within the device. The resource may be a reference to an item which is defined elsewhere in the model. For example, it may be a platform/component, interfaces/interface, terminal-device/logical-channels/channel, etc. In this case the system should match the name of the referenced item exactly. The referenced item could alternatively be the path of the item within the model."; reference "IETF YANG Alarm Module: Draft - typedef resource https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf text { type string; description "The string used to inform operators about the alarm. This MUST contain enough information for an operator to be able to understand the problem. If this string contains structure, this format should be clearly documented for programs to be able to parse that information"; reference "IETF YANG Alarm Module: Draft - typedef alarm-text https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf time-created { type oc-types:timeticks64; description "The time at which the alarm was raised by the system. This value is expressed relative to the Unix Epoch."; } leaf severity { type identityref { base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY; } description "The severity level indicating the criticality and impact of the alarm"; reference "IETF YANG Alarm Module: Draft - typedef severity https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } leaf type-id { type union { type string; type identityref { base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID; } } description "The abbreviated name of the alarm, for example LOS, EQPT, or OTS. Also referred to in different systems as condition type, alarm identifier, or alarm mnemonic. It is recommended to use the OPENCONFIG_ALARM_TYPE_ID identities where possible and only use the string type when the desired identityref is not yet defined"; reference "IETF YANG Alarm Module: Draft - typedef alarm-type-id https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02"; } } grouping alarm-config { description "Configuration data for device alarms"; } grouping alarms-top { description "Top-level grouping for device alarms"; container alarms { description "Top-level container for device alarms"; config false; list alarm { key "id"; description "List of alarms, keyed by a unique id"; leaf id { type leafref { path "../state/id"; } description "References the unique alarm id"; } container config { description "Configuration data for each alarm"; uses alarm-config; } container state { config false; description "Operational state data for a device alarm"; uses alarm-config; uses alarm-state; } } } } // augments augment "/oc-platform:components/oc-platform:component/oc-platform:state" { description "Adds specific alarms related to a component."; leaf equipment-failure { type boolean; default "false"; description "If true, the hardware indicates that the component's physical equipment has failed"; } leaf equipment-mismatch { type boolean; default "false"; description "If true, the hardware indicates that the component inserted into the affected component's physical location is of a different type than what is configured"; } } } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-alarms}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.2}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}]=SimpleContainerNode{version=Version[3d951cc7], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-aaa-tacacs, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.5.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=submodule openconfig-aaa-tacacs { yang-version "1"; belongs-to "openconfig-aaa" { prefix "oc-aaa"; } // import some basic types import openconfig-inet-types { prefix oc-inet; } import openconfig-extensions { prefix oc-ext; } import openconfig-aaa-types { prefix oc-aaa-types; } import openconfig-types { prefix oc-types; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data related to the TACACS+ protocol for authentication, authorization, and accounting."; oc-ext:openconfig-version "0.5.0"; revision "2020-07-30" { description "Add secret-key-hashed."; reference "0.5.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // extension statements // feature statements // identity statements identity TACACS { base oc-aaa-types:AAA_SERVER_TYPE; description "Terminal Access Controller Access Control System (TACACS+) AAA server"; reference "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05) RFC 1492 - An Access Control Protocol, Sometimes Called TACACS"; } // typedef statements // grouping statements grouping aaa-tacacs-server-config { description "Configuration data for a TACACS+ server"; leaf port { type oc-inet:port-number; default 49; description "The port number on which to contact the TACACS server"; } leaf secret-key { type oc-types:routing-password; description "The unencrypted shared key used between the authentication server and the device."; } leaf secret-key-hashed { type oc-aaa-types:crypt-password-type; description "The hashed shared key used between the authentication server and the device."; } leaf source-address { type oc-inet:ip-address; description "Source IP address to use in messages to the TACACS server"; } } grouping aaa-tacacs-server-state { description "Operational state data for a TACACS+ server"; } grouping aaa-tacacs-server-top { description "Top-level grouping for TACACS+ sever data"; container tacacs { description "Top-level container for TACACS+ server data"; container config { description "Configuration data for TACACS+ server"; uses aaa-tacacs-server-config; } container state { config false; description "Operational state data for TACACS+ server"; uses aaa-tacacs-server-config; uses aaa-tacacs-server-state; } } } // data definition statements // augment statements // rpc statements // notification statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-aaa-tacacs}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.5.0}]}}, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[7cd36e8c], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=openconfig-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module openconfig-system-logging { yang-version "1"; // namespace namespace "http://openconfig.net/yang/system/logging"; prefix "oc-log"; // import some basic types import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data for common logging facilities on network systems."; oc-ext:openconfig-version "0.3.1"; revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.1"; } revision "2017-09-18" { description "Updated to use OpenConfig types modules"; reference "0.3.0"; } revision "2017-07-06" { description "Move to oc-inet types, add IETF attribution, add RADIUS counters, changed password leaf names to indicate hashed"; reference "0.2.0"; } revision "2017-01-29" { description "Initial public release"; reference "0.1.0"; } // OpenConfig specific extensions for module metadata. oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; // extension statements // feature statements // identity statements identity SYSLOG_FACILITY { description "Base identity for Syslog message facilities."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity ALL { base SYSLOG_FACILITY; description "All supported facilities"; } identity KERNEL { base SYSLOG_FACILITY; description "The facility for kernel messages"; reference "IETF RFC 5424 - The Syslog Protocol"; } identity USER { base SYSLOG_FACILITY; description "The facility for user-level messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity MAIL { base SYSLOG_FACILITY; description "The facility for the mail system."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSTEM_DAEMON { base SYSLOG_FACILITY; description "The facility for the system daemons."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTH { base SYSLOG_FACILITY; description "The facility for security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity SYSLOG { base SYSLOG_FACILITY; description "The facility for messages generated internally by syslogd facility."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUTHPRIV { base SYSLOG_FACILITY; description "The facility for privileged security/authorization messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity NTP { base SYSLOG_FACILITY; description "The facility for the NTP subsystem."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity AUDIT { base SYSLOG_FACILITY; description "The facility for log audit messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity CONSOLE { base SYSLOG_FACILITY; description "The facility for log alert messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL0 { base SYSLOG_FACILITY; description "The facility for local use 0 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL1 { base SYSLOG_FACILITY; description "The facility for local use 1 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL2 { base SYSLOG_FACILITY; description "The facility for local use 2 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL3 { base SYSLOG_FACILITY; description "The facility for local use 3 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL4 { base SYSLOG_FACILITY; description "The facility for local use 4 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL5 { base SYSLOG_FACILITY; description "The facility for local use 5 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL6 { base SYSLOG_FACILITY; description "The facility for local use 6 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOCAL7 { base SYSLOG_FACILITY; description "The facility for local use 7 messages."; reference "IETF RFC 5424 - The Syslog Protocol"; } identity LOG_DESTINATION_TYPE { description "Base identity for destination for logging messages"; } identity DEST_CONSOLE { base LOG_DESTINATION_TYPE; description "Directs log messages to the console"; } identity DEST_BUFFER { base LOG_DESTINATION_TYPE; description "Directs log messages to and in-memory circular buffer"; } identity DEST_FILE { base LOG_DESTINATION_TYPE; description "Directs log messages to a local file"; } identity DEST_REMOTE { base LOG_DESTINATION_TYPE; description "Directs log messages to a remote syslog server"; } // typedef statements typedef syslog-severity { type enumeration { enum EMERGENCY { description "Emergency: system is unusable (0)"; } enum ALERT { description "Alert: action must be taken immediately (1)"; } enum CRITICAL { description "Critical: critical conditions (2)"; } enum ERROR { description "Error: error conditions (3)"; } enum WARNING { description "Warning: warning conditions (4)"; } enum NOTICE { description "Notice: normal but significant condition(5)"; } enum INFORMATIONAL { description "Informational: informational messages (6)"; } enum DEBUG { description "Debug: debug-level messages (7)"; } } description "Syslog message severities"; reference "IETF RFC 5424 - The Syslog Protocol"; } // grouping statements grouping logging-selectors-config { description "Configuration data for logging selectors"; leaf facility { type identityref { base SYSLOG_FACILITY; } description "Specifies the facility, or class of messages to log"; } leaf severity { type syslog-severity; description "Specifies that only messages of the given severity (or greater severity) for the corresonding facility are logged"; } } grouping logging-selectors-state { description "Operational state data for logging selectors"; } grouping logging-selectors-top { description "Top-level grouping for the logging selector list"; container selectors { description "Enclosing container "; list selector { key "facility severity"; description "List of selectors for log messages"; leaf facility { type leafref { path "../config/facility"; } description "Reference to facility list key"; } leaf severity { type leafref { path "../config/severity"; } description "Reference to severity list key"; } container config { description "Configuration data "; uses logging-selectors-config; } container state { config false; description "Operational state data "; uses logging-selectors-config; uses logging-selectors-state; } } } } grouping logging-console-config { description "Configuration data for console logging"; } grouping logging-console-state { description "Operational state data for console logging"; } grouping logging-console-top { description "Top-level grouping for console logging data"; container console { description "Top-level container for data related to console-based logging"; container config { description "Configuration data for console logging"; uses logging-console-config; } container state { config false; description "Operational state data for console logging"; uses logging-console-config; uses logging-console-state; } uses logging-selectors-top; } } grouping logging-remote-config { description "Configuration data for remote log servers"; leaf host { type oc-inet:host; description "IP address or hostname of the remote log server"; } leaf source-address { type oc-inet:ip-address; description "Source IP address for packets to the log server"; } leaf remote-port { type oc-inet:port-number; default 514; description "Sets the destination port number for syslog UDP messages to the server. The default for syslog is 514."; } } grouping logging-remote-state { description "Operational state data for remote log servers"; } grouping logging-remote-top { description "Top-level grouping for remote log servers"; container remote-servers { description "Enclosing container for the list of remote log servers"; list remote-server { key "host"; description "List of remote log servers"; leaf host { type leafref { path "../config/host"; } description "Reference to the host list key"; } container config { description "Configuration data for remote log servers"; uses logging-remote-config; } container state { config false; description "Operational state data for remote log servers"; uses logging-remote-config; uses logging-remote-state; } uses logging-selectors-top; } } } grouping logging-top { description "Top-level grouping for logging data"; container logging { description "Top-level container for data related to logging / syslog"; uses logging-console-top; uses logging-remote-top; } } // data definition statements // augment statements } }, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=openconfig-system-logging}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=0.3.1}]}}}, untouched=[ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name=gnmi-test-aug, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}], body=[ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)body, body=module gnmi-test-aug { yang-version "1"; namespace "test:aug"; prefix "gta"; import openconfig-extensions { prefix oc-ext; } import gnmi-test-model {prefix gtm;} oc-ext:openconfig-version "1.0.0"; augment /gtm:test-data { leaf interface { type string; } } augment "/gtm:test-data/gtm:nested-container" { list interface { key "name"; description "The list of named interfaces on the device."; leaf name { type string; } container config { leaf name { type string; } leaf type { type string; } leaf mtu { type uint16; } } } } }}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)name, body=gnmi-test-aug}, ImmutableLeafNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version, body=1.0.0}]}]}}}}}}} 08:15:40.735 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-90: doCommit completed 08:15:40.746 [/127.0.0.1:59014-http-server-req-10] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-87: doCommit completed 08:15:40.747 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=29 headers=DefaultHttp2Headers[:status: 204, content-length: 0] streamDependency=0 weight=16 exclusive=false padding=0 endStream=true 08:15:40.752 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Delete gnmi node gnmi-node-test response: (DELETE http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test) 204 08:15:41.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@dec415f} unlocked 08:15:41.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@dec415f} readied 08:15:41.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@dec415f} 08:15:41.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@dec415f} completed successfully 08:15:41.049 [mdsal-subscription-counters6] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7eecc5da} unlocked 08:15:41.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7eecc5da} readied 08:15:41.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7eecc5da} 08:15:41.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7eecc5da} completed successfully 08:15:41.132 [mdsal-subscription-counters0] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.213 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6ae264d5} unlocked 08:15:41.214 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6ae264d5} readied 08:15:41.214 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6ae264d5} 08:15:41.214 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@6ae264d5} completed successfully 08:15:41.214 [mdsal-subscription-counters17] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4b948e33} unlocked 08:15:41.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4b948e33} readied 08:15:41.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4b948e33} 08:15:41.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4b948e33} completed successfully 08:15:41.221 [mdsal-subscription-counters1] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@241dc8a7} unlocked 08:15:41.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@241dc8a7} readied 08:15:41.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@241dc8a7} 08:15:41.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@241dc8a7} completed successfully 08:15:41.259 [mdsal-subscription-counters13] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3c470beb} unlocked 08:15:41.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3c470beb} readied 08:15:41.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3c470beb} 08:15:41.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3c470beb} completed successfully 08:15:41.286 [mdsal-subscription-counters15] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.321 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@45fa047a} unlocked 08:15:41.321 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@45fa047a} readied 08:15:41.321 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@45fa047a} 08:15:41.321 [mdsal-subscription-counters8] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@45fa047a} completed successfully 08:15:41.321 [mdsal-subscription-counters8] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2a70ffe0} unlocked 08:15:41.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2a70ffe0} readied 08:15:41.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2a70ffe0} 08:15:41.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2a70ffe0} completed successfully 08:15:41.374 [mdsal-subscription-counters21] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@606252f9} unlocked 08:15:41.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@606252f9} readied 08:15:41.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@606252f9} 08:15:41.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@606252f9} completed successfully 08:15:41.514 [mdsal-subscription-counters10] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@647e154d} unlocked 08:15:41.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@647e154d} readied 08:15:41.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@647e154d} 08:15:41.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@647e154d} completed successfully 08:15:41.545 [mdsal-subscription-counters3] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.655 [grpc-nio-worker-ELG-65-2] DEBUG io.netty.buffer.PoolThreadCache -- Freed 21 thread-local buffer(s) from thread: grpc-nio-worker-ELG-65-2 08:15:41.719 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7132146c} unlocked 08:15:41.719 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7132146c} readied 08:15:41.719 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7132146c} 08:15:41.719 [mdsal-subscription-counters12] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@7132146c} completed successfully 08:15:41.719 [mdsal-subscription-counters12] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5c107a55} unlocked 08:15:41.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5c107a55} readied 08:15:41.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5c107a55} 08:15:41.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5c107a55} completed successfully 08:15:41.723 [mdsal-subscription-counters20] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:41.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e971eb4} unlocked 08:15:41.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e971eb4} readied 08:15:41.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e971eb4} 08:15:41.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2e971eb4} completed successfully 08:15:41.887 [mdsal-subscription-counters5] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.197 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3ad7b256} unlocked 08:15:42.197 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3ad7b256} readied 08:15:42.197 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3ad7b256} 08:15:42.197 [mdsal-subscription-counters7] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3ad7b256} completed successfully 08:15:42.197 [mdsal-subscription-counters7] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.365 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5b274014} unlocked 08:15:42.365 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5b274014} readied 08:15:42.365 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5b274014} 08:15:42.365 [mdsal-subscription-counters14] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5b274014} completed successfully 08:15:42.365 [mdsal-subscription-counters14] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43a4bf7} unlocked 08:15:42.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43a4bf7} readied 08:15:42.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43a4bf7} 08:15:42.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@43a4bf7} completed successfully 08:15:42.406 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@12ce977a} unlocked 08:15:42.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@12ce977a} readied 08:15:42.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@12ce977a} 08:15:42.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@12ce977a} completed successfully 08:15:42.406 [mdsal-subscription-counters9] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4e3821df} unlocked 08:15:42.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4e3821df} readied 08:15:42.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4e3821df} 08:15:42.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4e3821df} completed successfully 08:15:42.406 [mdsal-subscription-counters16] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@68d2f3a1} unlocked 08:15:42.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@68d2f3a1} readied 08:15:42.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@68d2f3a1} 08:15:42.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@68d2f3a1} completed successfully 08:15:42.468 [mdsal-subscription-counters22] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@214cd531} unlocked 08:15:42.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@214cd531} readied 08:15:42.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@214cd531} 08:15:42.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@214cd531} completed successfully 08:15:42.486 [mdsal-subscription-counters19] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.593 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@66f88cf0} unlocked 08:15:42.593 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@66f88cf0} readied 08:15:42.593 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@66f88cf0} 08:15:42.593 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@66f88cf0} completed successfully 08:15:42.593 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@69c17f29} unlocked 08:15:42.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@69c17f29} readied 08:15:42.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@69c17f29} 08:15:42.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@69c17f29} completed successfully 08:15:42.643 [mdsal-subscription-counters18] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1671d64b} unlocked 08:15:42.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1671d64b} readied 08:15:42.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1671d64b} 08:15:42.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@1671d64b} completed successfully 08:15:42.702 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully 08:15:42.753 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Sending GET request to path: http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:42.756 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] INBOUND HEADERS: streamId=31 headers=DefaultHttp2Headers[:authority: localhost:45697, :method: GET, :path: /rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test, :scheme: http, content-type: application/json, authorization: Basic dXNlcm5hbWU6cGEkJHcwUmQ=, user-agent: Java-http-client/21.0.9] padding=0 endStream=true 08:15:42.757 [gnmi-it-group-0] DEBUG org.apache.shiro.web.mgt.CookieRememberMeManager -- SubjectContext argument is not an HTTP-aware instance. This is required to obtain a servlet request and response in order to retrieve the rememberMe cookie. Returning immediately and ignoring rememberMe operation. 08:15:42.758 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- Looked up AuthenticationInfo [username] from doGetAuthenticationInfo 08:15:42.758 [gnmi-it-group-0] DEBUG org.apache.shiro.realm.AuthenticatingRealm -- AuthenticationInfo caching is disabled for info [username]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. 08:15:42.758 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String] 08:15:42.758 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher -- Both credentials arguments can be easily converted to byte arrays. Performing array equals comparison 08:15:42.758 [gnmi-it-group-0] DEBUG org.apache.shiro.authc.AbstractAuthenticator -- Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - username, rememberMe=false]. Returned account [username] 08:15:42.758 [gnmi-it-group-0] DEBUG org.apache.shiro.mgt.AbstractRememberMeManager -- AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 08:15:42.758 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.AAAShiroPrincipalService -- No x-restconf-principal-uuid header present 08:15:42.758 [gnmi-it-group-0] DEBUG org.opendaylight.restconf.server.APIResource -- Preparing GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:42.758 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Scheduling execution of GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test 08:15:42.760 [/127.0.0.1:59014-http-server-req-11] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: OPER-80 allocated with snapshot Version[3ad3608a] 08:15:42.760 [/127.0.0.1:59014-http-server-req-11] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: OPER-80 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:42.760 [/127.0.0.1:59014-http-server-req-11] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: OPER-80 : Closed 08:15:42.760 [/127.0.0.1:59014-http-server-req-11] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- ReadOnly Tx: CFG-11 allocated with snapshot Version[783d94f6] 08:15:42.760 [/127.0.0.1:59014-http-server-req-11] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Tx: CFG-11 Read: /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=gnmi-topology}]/node/node[{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=gnmi-node-test}] 08:15:42.760 [/127.0.0.1:59014-http-server-req-11] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction -- Store transaction: CFG-11 : Closed 08:15:42.760 [/127.0.0.1:59014-http-server-req-11] DEBUG org.opendaylight.restconf.server.api.AbstractServerRequest -- Request NettyServerRequest{uuid=e7234044-b0d5-4881-a3e3-4138f1d96ddb, parameters=QueryParameters({}), prettyPrint=org.opendaylight.restconf.api.query.PrettyPrintParam@1314033d} failed org.opendaylight.netconf.databind.RequestException: Request could not be completed because the relevant data model content does not exist at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:582) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy$5.onSuccess(RestconfStrategy.java:576) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132) at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004) at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:469) at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:119) at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1098) at org.opendaylight.restconf.mdsal.spi.data.RestconfStrategy.readData(RestconfStrategy.java:576) at org.opendaylight.restconf.mdsal.spi.data.MdsalRestconfStrategy.getData(MdsalRestconfStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:128) at org.opendaylight.restconf.server.spi.AbstractServerStrategy.dataGET(AbstractServerStrategy.java:115) at org.opendaylight.restconf.server.mdsal.MdsalRestconfServer.dataGET(MdsalRestconfServer.java:186) at org.opendaylight.restconf.server.PendingDataGet.execute(PendingDataGet.java:52) at org.opendaylight.restconf.server.PendingRequestWithoutBody.execute(PendingRequestWithoutBody.java:39) at org.opendaylight.restconf.server.AbstractPendingRequest.execute(AbstractPendingRequest.java:96) at org.opendaylight.netconf.transport.http.ServerRequestExecutor.lambda$executeRequest$2(ServerRequestExecutor.java:93) at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314) at java.base/java.lang.VirtualThread.run(VirtualThread.java:329) 08:15:42.761 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND HEADERS: streamId=31 headers=DefaultHttp2Headers[:status: 409, content-type: application/yang-data+json, content-length: 242] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false 08:15:42.762 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND DATA: streamId=31 padding=0 endStream=true length=242 bytes=7b0a2020226572726f7273223a207b0a20202020226572726f72223a205b0a2020202020207b0a2020202020202020226572726f722d746167223a2022646174... 08:15:42.763 [awaitility-thread] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Get node gnmi-node-test from topology when disconnecting: (GET http://localhost:45697/rests/data/network-topology:network-topology/topology=gnmi-topology/node=gnmi-node-test) 409 08:15:42.764 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Device disconnected! 08:15:42.764 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Cleanup done! 08:15:42.764 [main] DEBUG org.opendaylight.restconf.server.SimpleNettyEndpoint -- Stopping endpoint org.opendaylight.restconf.server.SimpleNettyEndpoint@19545f82 08:15:42.764 [gnmi-it-group-0] INFO Clear2To1 -- [id: 0x66a90cc0, L:/127.0.0.1:45697 - R:/127.0.0.1:59014] OUTBOUND GO_AWAY: lastStreamId=31 errorCode=0 length=0 bytes= 08:15:42.765 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Threadpools for [id: 0x66a90cc0, L:/127.0.0.1:45697 ! R:/127.0.0.1:59014] shut down 08:15:42.765 [gnmi-it-group-0] DEBUG org.opendaylight.netconf.transport.http.HTTPServerSession -- Threadpools for [id: 0x66a90cc0, L:/127.0.0.1:45697 ! R:/127.0.0.1:59014] shut down 08:15:42.765 [main] DEBUG org.opendaylight.restconf.server.SimpleNettyEndpoint -- Stopped endpoint org.opendaylight.restconf.server.SimpleNettyEndpoint@19545f82 in 742.9 μs 08:15:42.765 [main] INFO org.opendaylight.gnmi.southbound.yangmodule.GnmiSouthboundModule -- Stopping ODL gNMI Southbound Component 08:15:42.765 [main] DEBUG org.opendaylight.gnmi.southbound.mountpoint.GnmiMountPointRegistrator -- Closing Mount Points 08:15:42.765 [main] INFO org.opendaylight.gnmi.southbound.device.connection.DeviceConnectionManager -- Closing all connections to devices 08:15:42.765 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreTreeChangePublisher -- Closing registration RegImpl{closed=true, instance=BindingDOMDataTreeChangeListenerAdapter{listener=org.opendaylight.gnmi.southbound.listener.GnmiNodeListener@41ad452c}} 08:15:42.766 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Performing cleanup! 08:15:42.766 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- Cleanup done! 08:15:42.768 [main] DEBUG org.opendaylight.gnmi.simulatordevice.impl.SimulatedGnmiDevice -- Shutting down simulator...